XML-루트에없는 네임 스페이스 추가

남자

이 형식의 SQL Server에서 XML을 작성해야합니다. 첫 번째 줄에 두 개의 XMLNAMESPACES가 있지만 위치 옆에 세 번째 줄이 있습니다.

<arrayofstuff xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ACME.Domain.Core.ComplexTypes">
  <stuff>
    <Description>blue</Description>
    <Location xmlns:d3p1="http://schemas.datacontract.org/2004/07/ACME.Infrastructure.CodeValues">
      <d3p1:Code>64</d3p1:Code>
      <d3p1:Description>Balloons</d3p1:Description>
    </Location>
  </stuff>
</arrayofstuff>

다음은 샘플 데이터와 함께 지금까지 내가 가지고있는 것입니다. 첫 번째 쿼리 내에 중첩 된 XML 쿼리가있는 것 같지만 WITH 문을 배치의 첫 번째 명령이어야하므로 두 번째로 사용할 수없는 것 같습니다. 어떻게해야할지 모르겠습니다. .

IF EXISTS(SELECT 1 FROM sys.tables WHERE object_id = OBJECT_ID('myTable'))
BEGIN;
    DROP TABLE [myTable];
END;
GO

CREATE TABLE [myTable] (
    [myTableID] INTEGER NOT NULL IDENTITY(1, 1),
    [Description] VARCHAR(MAX) NULL,
    [sourceID] INTEGER NOT NULL ,
    [Location] VARCHAR(255) NULL,
    [Code] VARCHAR(255) NULL,
    [Location_Desc] VARCHAR(255) NULL,
    PRIMARY KEY ([myTableID])
);
GO

INSERT INTO myTable([SourceID],[Description],[Location],[Code],[Location_Desc])
VALUES(3,'yellow','Oxford County','64','list'),
(3,'blue','Fraser Lake','64','list'),
(2,'red','San Marcello Pistoiese','64','list'),
(2,'green','Gembloux','64','list'),
(2,'green','Yeongcheon','64','list')

GO

WITH XMLNAMESPACES (default 'http://schemas.datacontract.org/2004/07/ACME.Domain.Core.ComplexTypess', 'http://www.w3.org/2001/XMLSchema-instance' as i )
SELECT 
[sourceID]
,cast(stuff((
 SELECT
[Description] as [Description]
,[Code] AS [Location/Code]
,[Location_Desc] AS [Location/Description]
FROM [myTable] mnbm
where mnbm.[sourceID] = p.[sourceID]
for xml path('stuff'), root ('arrayofstuff')
),1,0,'') as xml) as Ids
from [myTable]  p
group by 
p.[sourceID]

현재 내 출력 결과는 다음과 같습니다.

<arrayofstuff xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ACME.Domain.Core.ComplexTypess">
  <stuff>
    <Description>commodo</Description>
    <Location>San Marcello Pistoiese</Location>
  </stuff>
  <stuff>
    <Description>ipsum</Description>
    <Location>Gembloux</Location>
  </stuff>
  <stuff>
    <Description>ipsum</Description>
    <Location>Yeongcheon</Location>
  </stuff>
</arrayofstuff>
AlwaysLearning

xmlns:d3p1="http://schemas.datacontract.org/2004/07/ACME.Infrastructure.CodeValues"Location 요소에 나타나야하는 특별한 이유 가 있습니까? 네임 스페이스는 참조되기 전에 정의 되기만하면 XML 문서의 어느 위치에서나 정의 할 수 있으므로 루트 요소에서의 일부로 정의 할 수 있습니다 WITH XMLNAMESPACES. 예 :

drop table if exists dbo.myTable;

create table dbo.myTable (
    myTableID integer not null identity(1, 1),
    [Description] varchar(max) null,
    sourceID integer not null,
    [Location] varchar(255) null,
    Code varchar(255) null,
    Location_Desc varchar(255) null,
    primary key (myTableID)
);

insert into dbo.myTable (sourceID,[Description],[Location],Code,Location_Desc)
values (1, 'blue', 'Somewhere', '64', 'Balloons');

with xmlnamespaces (
    default 'http://schemas.datacontract.org/2004/07/ACME.Domain.Core.ComplexTypess',
    'http://schemas.datacontract.org/2004/07/ACME.Infrastructure.CodeValues' as d3p1,
    'http://www.w3.org/2001/XMLSchema-instance' as i )
select
    [sourceID],
    cast((
        select
            [Description],
            Code as [Location/d3p1:Code],
            Location_Desc as [Location/d3p1:Description]
        from dbo.myTable mnbm
        where mnbm.sourceID = p.sourceID
        for xml path('stuff'), root('arrayofstuff')
    ) as xml) as Ids
from dbo.myTable p
group by p.sourceID;

결과 :

<arrayofstuff
  xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:d3p1="http://schemas.datacontract.org/2004/07/ACME.Infrastructure.CodeValues"
  xmlns="http://schemas.datacontract.org/2004/07/ACME.Domain.Core.ComplexTypess">
  <stuff>
    <Description>blue</Description>
    <Location>
      <d3p1:Code>64</d3p1:Code>
      <d3p1:Description>Balloons</d3p1:Description>
    </Location>
  </stuff>
</arrayofstuff>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP의 xml 노드에 네임 스페이스 속성 추가

분류에서Dev

XML에서 XSD 생성 및 네임 스페이스 XSLT 추가

분류에서Dev

XSLT-노드 XML에 네임 스페이스 추가

분류에서Dev

기존 xml에 네임 스페이스 및 별칭 추가

분류에서Dev

XML에서 네임 스페이스가없는 요소

분류에서Dev

콜론이있는 네임 스페이스를 xml 파일에 추가

분류에서Dev

네임 스페이스가있는 XML에서 Pandas DF로-Python

분류에서Dev

문서에 Xml 요소를 추가 할 때 네임 스페이스 문제

분류에서Dev

LINQ to XML-노드로드 후 Xdocument에 추가-네임 스페이스 문제

분류에서Dev

XML (Java)에 네임 스페이스를 추가하지 마십시오.

분류에서Dev

네임 스페이스가있는 xml 문서의 값 선택

분류에서Dev

네임 스페이스가있는 XML로 열 선택

분류에서Dev

비표준 네임 스페이스가있는 Linq 쿼리 XML

분류에서Dev

네임 스페이스가있는 xml 구문 분석 문제

분류에서Dev

soapEnvolpe 및 네임 스페이스없이 xml을 하나로 변환하고 xslt를 사용하여 내부 요소에 네임 스페이스 추가

분류에서Dev

루트 요소에 네임 스페이스 추가

분류에서Dev

JAX-WS : SOAP 응답에 추가 XML 네임 스페이스를 추가하는 방법

분류에서Dev

루트 태그에 여러 네임 스페이스가있는 XML 역 직렬화

분류에서Dev

XML 속성에 네임 스페이스 접두사가 추가되는 이유는 무엇입니까?

분류에서Dev

XML 속성에 네임 스페이스 접두사가 추가되는 이유는 무엇입니까?

분류에서Dev

셸에서 XML 문서의 기본 네임 스페이스 태그에 네임 스페이스 접두사를 추가합니다.

분류에서Dev

루트 태그에 xml 네임 스페이스가있는 weather.gov.sg에서 날씨 피드를 읽을 수 없습니다.

분류에서Dev

네임 스페이스가있는 RSS XML을로드 할 수 없습니다.

분류에서Dev

네임 스페이스가있는 XML에서 데이터 선택

분류에서Dev

null을 반환하는 네임 스페이스가있는 XML에서 선택

분류에서Dev

null을 반환하는 네임 스페이스가있는 XML에서 선택

분류에서Dev

Oracle에서 네임 스페이스가있는 CLOB 열에 xml 노드 삽입

분류에서Dev

네임 스페이스가있는 xml 파일에서 값을 추출하는 방법은 무엇입니까?

분류에서Dev

전체 문서를 복사하는 동안 XSL 속성 (네임 스페이스 아님)을 XML 루트에 추가

Related 관련 기사

  1. 1

    PHP의 xml 노드에 네임 스페이스 속성 추가

  2. 2

    XML에서 XSD 생성 및 네임 스페이스 XSLT 추가

  3. 3

    XSLT-노드 XML에 네임 스페이스 추가

  4. 4

    기존 xml에 네임 스페이스 및 별칭 추가

  5. 5

    XML에서 네임 스페이스가없는 요소

  6. 6

    콜론이있는 네임 스페이스를 xml 파일에 추가

  7. 7

    네임 스페이스가있는 XML에서 Pandas DF로-Python

  8. 8

    문서에 Xml 요소를 추가 할 때 네임 스페이스 문제

  9. 9

    LINQ to XML-노드로드 후 Xdocument에 추가-네임 스페이스 문제

  10. 10

    XML (Java)에 네임 스페이스를 추가하지 마십시오.

  11. 11

    네임 스페이스가있는 xml 문서의 값 선택

  12. 12

    네임 스페이스가있는 XML로 열 선택

  13. 13

    비표준 네임 스페이스가있는 Linq 쿼리 XML

  14. 14

    네임 스페이스가있는 xml 구문 분석 문제

  15. 15

    soapEnvolpe 및 네임 스페이스없이 xml을 하나로 변환하고 xslt를 사용하여 내부 요소에 네임 스페이스 추가

  16. 16

    루트 요소에 네임 스페이스 추가

  17. 17

    JAX-WS : SOAP 응답에 추가 XML 네임 스페이스를 추가하는 방법

  18. 18

    루트 태그에 여러 네임 스페이스가있는 XML 역 직렬화

  19. 19

    XML 속성에 네임 스페이스 접두사가 추가되는 이유는 무엇입니까?

  20. 20

    XML 속성에 네임 스페이스 접두사가 추가되는 이유는 무엇입니까?

  21. 21

    셸에서 XML 문서의 기본 네임 스페이스 태그에 네임 스페이스 접두사를 추가합니다.

  22. 22

    루트 태그에 xml 네임 스페이스가있는 weather.gov.sg에서 날씨 피드를 읽을 수 없습니다.

  23. 23

    네임 스페이스가있는 RSS XML을로드 할 수 없습니다.

  24. 24

    네임 스페이스가있는 XML에서 데이터 선택

  25. 25

    null을 반환하는 네임 스페이스가있는 XML에서 선택

  26. 26

    null을 반환하는 네임 스페이스가있는 XML에서 선택

  27. 27

    Oracle에서 네임 스페이스가있는 CLOB 열에 xml 노드 삽입

  28. 28

    네임 스페이스가있는 xml 파일에서 값을 추출하는 방법은 무엇입니까?

  29. 29

    전체 문서를 복사하는 동안 XSL 속성 (네임 스페이스 아님)을 XML 루트에 추가

뜨겁다태그

보관