【发布时间】:2018-06-21 03:51:09
【问题描述】:
我需要从 SQL Server 生成一个符合 BOD OAGIS schema 的 XML 文档。
我有部分解决方案,但没有得到我需要的确切格式。
这是我的查询:
SELECT
(
SELECT Customer As 'SalesOrderHeader/CustomerParty/ID',
(
SELECT LinesNo As 'LineNumber'
FROM LinesInterfaccia
WHERE HeaderInterfaccia.OrderNo = LinesInterfaccia.OrderNo
FOR XML path('salesline'), TYPE
)
FROM HeaderInterfaccia
FOR XML path('salesorder'), type
).query('for $i in /salesorder return <DataArea>{$i}</DataArea>');
这是我的结果:
<DataArea>
<salesorder>
<SalesOrderHeader>
<CustomerParty>
<ID>BP00003184</ID>
</CustomerParty>
</SalesOrderHeader>
<salesline>
<LineNumber>10</LineNumber>
</salesline>
<salesline>
<LineNumber>20</LineNumber>
</salesline>
</salesorder>
</DataArea>
<DataArea>
<salesorder>
<SalesOrderHeader>
<CustomerParty>
<ID>BP00003184</ID>
</CustomerParty>
</SalesOrderHeader>
<salesline>
<LineNumber>10</LineNumber>
</salesline>
</salesorder>
</DataArea>
但我需要这种格式:
<DataArea>
<Process>tenant</Process>
<salesorder>
<SalesOrderHeader>
<CustomerParty>
<ID>BP00003184</ID>
</CustomerParty>
</SalesOrderHeader>
<salesline>
<LineNumber>10</LineNumber>
</salesline>
<salesline>
<LineNumber>20</LineNumber>
</salesline>
</salesorder>
</DataArea>
<DataArea>
<Process>tenant</Process>
<salesorder>
<SalesOrderHeader>
<CustomerParty>
<ID>BP00003184</ID>
</CustomerParty>
</SalesOrderHeader>
<salesline>
<LineNumber>10</LineNumber>
</salesline>
</salesorder>
</DataArea>
我也试过了:
SELECT
(
SELECT 'tenant' as 'Process',
Customer As 'SalesOrderHeader/CustomerParty/ID',
(select LinesNo as 'LineNumber/no'
结果:
<DataArea>
<salesorder>
<Process>tenant</Process>
<SalesOrderHeader>
我的预期结构是:
<DataArea>
<Process>
</Process>
<SalesOrder>
<SalesLine>
</Salesline>
<SalesLine>
</Salesline>
</salesOrder>
</DataArea>
【问题讨论】:
标签: sql-server xml schema