Являются ли эти XML документы функционально одинаковыми? - PullRequest
0 голосов
/ 03 марта 2020

Означают ли это то же самое в XML схеме? Будут ли они обрабатываться одинаково?

<ns5:Request RequestID="12345">
    <ns5:Details Name="Bob"/>
</ns5:Request>
<ns5:Request>
    <ns5:RequestID>"12345"</ns5:RequestID>
    <ns5:Details>
        <ns5:Name>"Bob"</ns5:Name>
    </ns5:Details>
</ns5:Request>

Ответы [ 3 ]

1 голос
/ 03 марта 2020

Краткий ответ:

Более длинный ответ:
В первом случае RequestID является атрибутом Request, а в во втором случае RequestID является элементом (значение которого также включает кавычки, которых нет в первом случае). Элемент Details в первом случае имеет атрибут с именем Name, который содержит значение Bob. Во втором случае элемент Details имеет вложенный элемент с именем Name со значением Bob. Это две разные вещи.

Просто к сведению:
В обоих случаях элементы и атрибуты находятся в пространстве имен (здесь префикс называется ns5).

Окончательный результат:
В обоих случаях требуются разные XSD, и они не эквивалентны.

1 голос
/ 03 марта 2020

Будут ли они обрабатываться одинаково?

Зависит от того, кто или что обрабатывает их. Можно представить программное обеспечение, которое обрабатывает элементы и атрибуты как взаимозаменяемые, так же как существует программное обеспечение, которое обрабатывает верхний и нижний регистры как взаимозаменяемые.

Но на уровне XML документы, безусловно, отличаются.

1 голос
/ 03 марта 2020

Первый XML основан на атрибутах . Второй XML основан на элементах . Так что им потребуются совершенно разные XML схемы.

...