Как добавить дополнительные атрибуты и значение XML пространства имен внутри одного и того же root на SQL сервере - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь добавить атрибуты и xmlns, используя WITH XMLNAMESPACES под тем же root, но не могу заставить его работать. Пожалуйста помоги.

Следующий запрос SQL выдает ошибку

Сообщение 6852, Уровень 16, Состояние 1, Строка 17 Атрибут-centri c столбец '@encounter_number' не должен появляться после не-атрибут-centri c одноуровневый элемент в XML иерархии в FOR XML PATH.

для этой строки

'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_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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...