Цитаты в XML. Одиночный или двойной?

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

Должен ли я всегда писать:

<element attr="value">

Или допустимо писать:

<element attr='value'>

Или не имеет значения, какой стиль я использую?

Ответы

Ответ 1

Оба являются законными. Выберите один и придерживайтесь его. Это не имеет значения.

Из spec:

AttValue       ::=      '"' ([^<&"] | Reference)* '"'
                     |  "'" ([^<&'] | Reference)* "'"

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

Ответ 2

Двойные кавычки более обычны, и вполне приемлемо, чтобы какое-либо конкретное сообщество приняло стиль дома ради согласованности, но было сказано, что один из способов сделать это лучше не имеет оправдания.

Также опасно делать такие рекомендации, поскольку он поощряет "отчаянных взломанных хакеров", которые пытаются анализировать XML с использованием регулярных выражений вместо использования реального синтаксического анализа XML и неизменно удается только обработать подмножество того, что юридически разрешает XML.

Я предпочитаю использовать одинарные кавычки для удобства, если я создаю XML файлы с помощью Java-приложений, хотя я все больше склоняюсь к представлению о том, что создаваемый вручную XML почти такой же опасный, как ручной анализ его.