Может ли атрибут XML быть пустой строкой? - PullRequest
10 голосов
/ 08 октября 2008

Может ли атрибут XML быть пустой строкой?

Другими словами, это

<element att="" />

действительный XML?

Ответы [ 6 ]

11 голосов
/ 08 октября 2008

Да, это правильно сформированный XML.

Простой способ проверить это (в Windows) - сохранить образец в файле test.xml и открыть его с помощью Internet Explorer. IE отобразит сообщение об ошибке, если документ не правильно сформирован.

8 голосов
/ 08 октября 2008

Вы можете создать пустой атрибут через AttName = ""

Вы можете создать пустой элемент через

<elementName></elementName>

или

<elementName/>
4 голосов
/ 08 октября 2008

Ничего не стоит, что это атрибут XML , а не элемент. Пустой элемент будет:

</>

, который не является допустимым XML.

3 голосов
/ 24 июля 2010

это действительный тег xml:

<mytag myattrib=""/>

это не так:

<mytag myattrib/>
2 голосов
/ 08 октября 2008

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

0 голосов
/ 08 октября 2008

Да - содержимое элемента может быть пустым, и, как вы использовали в своем вопросе, есть даже специальная нотация тега Empty-Element:

<elementname />

За исключением случаев, когда необходимо взаимодействие с SGML, вышеприведенное эквивалентно

<elementname></elementname>

Значения атрибута также могут быть пустыми, но за атрибутами всегда следует символ «=» и строка в кавычках, даже если строка не содержит символов.


Определенное место для этого информация - это спецификация XML: http://www.xml.com/axml/testaxml.htm

Вот что говорит Annotated XML Reference о пустых элементах:

Итак, действительно ли это: <img src='madonna.gif'></img> точно так же, как <img src='madonna.gif'/>? Насколько XML обеспокоены, они есть. Это решение было поводом для многих религиозных дебатов, с некоторым чувством, что есть существенный элемент между "точкой" и элементы типа «контейнер». И как «для совместимости» примечание ниже дает понять, если вы используете до 1998 Программное обеспечение SGML для обработки XML, есть большая разница.

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

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