Sql server 如何在SQLServer的同一根目录中添加其他属性和XML名称空间值
我试图在同一根目录下使用Sql server 如何在SQLServer的同一根目录中添加其他属性和XML名称空间值,sql-server,xml,xml-namespaces,Sql Server,Xml,Xml Namespaces,我试图在同一根目录下使用和XMLNAMESPACES添加属性和xmln,但无法使其正常工作。请帮忙 下面的SQL查询抛出一个错误 Msg 6852,16级,状态1,第17行 以属性为中心的列“@conference_number”不能位于FOR XML PATH中XML层次结构中非以属性为中心的同级之后 这条线 'HMSXML' AS "pbrc/@source" , URNumber AS "pbrc/@messageHash", 'xmlResult01' AS "pbrc/@integra
和XMLNAMESPACES
添加属性和xmln,但无法使其正常工作。请帮忙
下面的SQL查询抛出一个错误
Msg 6852,16级,状态1,第17行
以属性为中心的列“@conference_number”不能位于FOR XML PATH中XML层次结构中非以属性为中心的同级之后
这条线
'HMSXML' AS "pbrc/@source" , URNumber AS "pbrc/@messageHash", 'xmlResult01' AS "pbrc/@integration_info"
完整代码:
DECLARE @xml XML;
WITH XMLNAMESPACES (
'http://www.w3.org/2001/XMLSchema-instance' as xsi
,'http://java.sun.com/xml/ns/jaxb/xjc' as xjc
,'http://www.powerhealthsolutions.com/pbrc/jaxb/ext' as [pbrc-jaxb]
,'http://java.sun.com/xml/ns/jaxb' AS jaxb
,DEFAULT 'http://www.powerhealthsolutions.com/pbrc')
SELECT
@xml = (SELECT
'HMSXML' AS "pbrc/@source",
URNumber AS "pbrc/@messageHash",
'xmlResult01' AS "pbrc/@integration_info",
AdmissionID AS "@encounter_number",
'NDIS' AS organisation_code,
'NDIS' AS encounter_type,
(SELECT
'true' AS "@delete",
(SELECT 'NDIS' AS class_type, AdmissionDate AS start_date_time
FOR XML PATH ('financial_class'), TYPE)
FOR XML PATH('financial_classes'), TYPE),
(SELECT
URNumber AS "@entity_number",
(SELECT 'NDIS ID' AS name, NDISNumber AS value
FOR XML PATH ('extra'), ROOT('extras'), TYPE)
FOR XML PATH ('recipient'), TYPE),
'H' AS referral_source,
'H' AS separation_status,
AdmissionDate AS start_date_time
FROM
Episode
FOR XML PATH('encounter'), ROOT('pbrc'), TYPE)
select @xml
我希望获得如图所示的输出,但我无法实现最后3个属性integration\u info=“xmlResult03”
、messageHash=“4208151”
和source=“HMSXML”
。这些将来自SQL选择查询
<?xml version="1.0"?>
-<pbrc xmlns="http://www.powerhealthsolutions.com/pbrc" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:pbrc-jaxb="http://www.powerhealthsolutions.com/pbrc/jaxb/ext" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" integration_info="xmlResult03" messageHash="4208151" source="HMSXML">
-<encounter encounter_number="525241">
<organisation_code>NDIS</organisation_code>
<encounter_type>NDIS</encounter_type>
-<financial_classes delete="true">
-<financial_class>
<class_type>NDIS</class_type>
<start_date_time>2018-06-26T00:00:00</start_date_time>
</financial_class>
</financial_classes>
-<payors>
-<payor>
<payor entity_number="4208151"> </payor>
<slot>Patient</slot>
<start_date>2018-06-26</start_date>
</payor>
</payors>
-<recipient entity_number="4208151">
-<extras>
-<extra>
<name>NDIS ID</name>
<value>430392519</value>
</extra>
</extras>
</recipient>
<referral_source>H</referral_source>
<separation_status>H</separation_status>
-<services>
-<service>
<source_system_code>HMSXML</source_system_code>
<organisation_code>NDIS</organisation_code>
<actual_charge>179.26</actual_charge>
<description1>Arnold Sch - Occupational Therapist</description1>
<quantity>1</quantity>
<service_code>15_048_0128_1_3</service_code>
<start_time>2019-03-27T15:00:00</start_time>
</service>
-<service>
<source_system_code>HMSXML</source_system_code>
<organisation_code>NDIS</organisation_code>
<actual_charge>193.99</actual_charge>
<description1>Arnold Sch - Occupational Therapist</description1>
<quantity>1</quantity>
<service_code>15_056_0128_1_3</service_code>
<start_time>2019-07-30T15:00:00</start_time>
</service>
</services>
<start_date_time>2018-06-26T00:00:00</start_date_time>
</encounter>
</pbrc>
-
-
NDIS
NDIS
-
-
NDIS
2018-06-26T00:00:00
-
-
病人
2018-06-26
-
-
-
NDIS ID
430392519
H
H
-
-
HMSXML
NDIS
179.26
Arnold Sch-职业治疗师
1.
15_048_0128_1_3
2019-03-27T15:00:00
-
HMSXML
NDIS
193.99
Arnold Sch-职业治疗师
1.
15_056_0128_1_3
2019-07-30T15:00:00
2018-06-26T00:00:00
您确定这就是全部错误消息吗?错误消息实际上是以属性为中心的列“@Conference_number”不能位于FOR XML PATH中XML层次结构中非以属性为中心的同级之后?很抱歉迟了答复。我更新了完整的错误信息,你完全正确。有没有解决这个问题的建议?您想要的完整xml结果是什么?当事件表至少有2行时,最好显示要构造/创建的xml。我已将所需的xml输出更新为完整。谢谢