Например, для узла, который является правильным?
Сама спецификация XML не говорит об узлах (кроме сравнения синтаксиса DTD с конечным автоматическим регулярным выражением). Узел DOM может быть атрибутом, элементом, текстом или любым другим типом узла.
Внутри текстового узла вам нужно только экранировать символы, которые синтаксический анализатор будет интерпретировать как запуск другого узла - поэтому вы экранируете & и <</em> как & amp; и & lt; .
Для переносимости часто рекомендуется избегать кавычек, но нет смысла избегать простых кавычек в тексте XML.
Внутри узла атрибута вы должны экранировать меньше, чем и амперсанд, как и раньше, а также любую кавычку, которую вы использовали для разделения атрибута.
<foo attribute="'ok'" attribute2='"also-ok"' attribute3=""needed""/>
Обычно легче привыкнуть использовать только один тип и всегда избегать его. Я пишу довольно много XSLT и одобряю использование "снаружи и внутри":
<xsl:value-of select="person[@name = 'bob']"/>
Если вы становитесь параноиком с побегом, XPath становится менее читабельным:
<xsl:value-of select="person[@name = 'bob'"/>
Если (с), действительно ли уместно смешивать HTML и XML?
XML определяет именованные объекты amp , gt , lt , apos , & quot
HTML определяет еще много сущностей.
Вы можете и должны использовать именованные объекты XML в XML, предпочитая использовать числовые объекты.
Сущность lt экранирует <</em> и должна использоваться в значениях текста и атрибутов.
Сущность amp экранирует & и должна использоваться в значениях текста и атрибутов.
Объекты apos и quot экранируют ' и " и должны использоваться в значениях атрибутов.
Сущность gt немного бесполезна - почти никогда не существует синтаксического требования для экранирования > в XML. Возможно> согласился работать только с <, если он получил равный счет. </p>
Другой, который я часто использую в XSLT, который генерирует исходный код, - это & # xa; , который вставляет новую строку. & nl; было бы более полезным, чем & gt;
Точно так же, как вы обрабатываете одиночные и фигурные кавычки?
XML предназначен для разметки текста в Юникоде, и фигурные кавычки не имеют в нем особого значения. Тем не менее, нередки случаи, когда кодировка, используемая для XML-документа, неверно интерпретируется в дикой природе. Так что, если он находится в закрытой среде и может гарантировать правильную кодировку Unicode у производителя и потребителя, я бы просто поместил его в XML. В противном случае используйте числовой символьный объект. Это верно для любого символа с кодовой точкой выше 127 - в фигурных кавычках нет ничего особенного.