Если схема требует атрибута, и я отправляю его как элемент, это недействительно? - PullRequest
1 голос
/ 10 августа 2009

Связанный узел здесь был - Атрибуты XML против элементов но это был скорее вопрос дизайна.

Мой вопрос касается действительности.

Если для схемы требуется

<record name="foo" description="bar" />

и я поставляю

<record>
  <name>foo</name>
  <description>bar</description>
</record>

Будет ли XML считаться недействительным?

И наоборот: если элементы были указаны, а я предоставляю атрибуты, это недействительно?

Есть ли в спецификации XML ссылка, документирующая, что должен делать синтаксический анализатор XML в этом случае, когда семантика та же, но литеральная структура XML отличается?

Ответы [ 3 ]

2 голосов
/ 10 августа 2009

Если в XML-схеме указано, что для нее требуется элемент, а вы предоставляете атрибут, то это недопустимо. Обратное тоже самое. Если вы не проверите XML, ваш код все равно будет иметь проблемы, потому что вы будете искать атрибут, и он не найдет элемент.

1 голос
/ 10 августа 2009

Атрибуты и элементы никоим образом не являются взаимозаменяемыми. Если схема требует одну, использование другой недопустимо, и логика проверки схемы XML должна отклонить ее. Являются ли они семантически идентичными, также очень сомнительно.

0 голосов
/ 06 сентября 2013

В XML схема является строгим контрактом: , если вы не соблюдаете ее, сделка заканчивается !

Если атрибуты были указаны как элементы, допустим ли XML?

Ответ: недействительно .

Если элементы были указаны как атрибуты, допустим ли XML?

Ответ: недействительно .

Что должен делать парсер XML в этом случае?

Ответ: ошибка при разборе по причинам правильности схемы.

Средство чтения XML не приспособится к любой ошибке внутри исходного документа. По этой теме мир XML противоположен миру HTML. Эта строгость является свойством XML, что позволяет легко анализировать, обрабатывать и генерировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...