XML 및 네임 스페이스 조각이있는 FOR XML을 사용하여 SQL Server 2005/2008에 이상한 문제가 발생했습니다. 문제의 질문입니다.SQL Server에서 FOR XML을 사용하여 빈 네임 스페이스를 표시하지 않으려면
WITH XMLNAMESPACES (
DEFAULT 'http://tempuri.org/newincomingxml.xsd',
'http://tempuri.org/newincomingxml.xsd' as [xsi],
'http://tempuri.org/newincomingxml.xsd' as [a]
)
SELECT
[@a:Source], [AddressCount], [ConsumerCount], [EmailCount], [PermissionCount]
, (
SELECT
[Consumer]
FROM tbcExportBRC_Current xmlmaster
FOR XML PATH(''), ROOT('Consumers'), TYPE
)
FROM tbcExportBRCBatch_Current xmlroot
FOR XML PATH('Datafeed'), TYPE
[고객] 필드는 XML 조각이다. 내가 이것을 실행할 때 나는 얻는다.
<Datafeed xmlns:a="http://tempuri.org/newincomingxml.xsd" xmlns:xsi="http://tempuri.org/newincomingxml.xsd" xmlns="http://tempuri.org/newincomingxml.xsd" a:Source="DSD">
<AddressCount>0</AddressCount>
<ConsumerCount>0</ConsumerCount>
<EmailCount>0</EmailCount>
<PermissionCount>0</PermissionCount>
<Consumers xmlns:a="http://tempuri.org/newincomingxml.xsd" xmlns:xsi="http://tempuri.org/newincomingxml.xsd" xmlns="http://tempuri.org/newincomingxml.xsd">
<Consumer>
<ConsumerType xmlns="">Individual</ConsumerType>
<FirstName xmlns="">STEVE</FirstName>
<LastName xmlns="">SMITH</LastName>
</Consumer>
</Consumers>
</Datafeed>
당신은 태그의 아이들이 의 xmlns = ""그들을 통지하는 경우. 표에서 직접 파편을 보면이 모양입니다.
<ConsumerType>Individual</ConsumerType>
<FirstName>STEVE</FirstName>
<LastName>SMITH</LastName>
나는 그것은에 xmlns = ""제거 기본 네임 스페이스
DEFAULT 'http://tempuri.org/newincomingxml.xsd',
을 제거 할 수 있지만, 우리는 파일에 그것을 유지해야합니다. 어떤 아이디어?
당신이 말하는 것을 이해합니다. 나는 소비자 칼럼에있는 조각이 옳지 않다는 것을 깨달았 기 때문에 원래 게시물을 편집하고 있습니다. 각 줄에 xmlns = "http://tempuri.org/newincomingxml.xsd"를 넣지 않고도 네임 스페이스가 속한 네임 스페이스를 어떻게 지정할 수 있습니까? –
' ... ... ' –