В xpath, почему я могу использовать больше - чем символ>, но не меньше <

Используя скомпилированный c#3 преобразовывает следующее, кажется, работает просто великолепно...

<xsl:choose>
    <xsl:when test="$valA > $valB">
        <xsl:value-of select="$maxUnder" />
    </xsl:when>
    <xsl:when test="$valA &lt; $valC">
        <xsl:value-of select="$maxOver" />
    </xsl:when>
</xsl:choose>

Однако, если я смею использовать a < вместо &lt; это дает ошибку...

<xsl:choose>
    <xsl:when test="$valA > $valB">
        <xsl:value-of select="$maxUnder" />
    </xsl:when>
    <xsl:when test="$valA < $valC">
        <xsl:value-of select="$maxOver" />
    </xsl:when>
</xsl:choose>

Система. Xml. XmlException: '<', шестнадцатеричное значение 0x3C, недопустимый символ атрибута.

Итак, почему > хорошо и нет < ?

6
задан Wayne Burkett 14 December 2011 в 20:09
поделиться

1 ответ

Потому что > не является зарезервированным символом в XML, а < является.

Из раздела 2.4 спецификации XML 1.0 (5-е издание) :

Символ амперсанда ( & ) и левая угловая скобка ( <) не должна появляться в их буквальном виде, кроме случаев, когда используются в качестве разделителей разметки или внутри комментарий, инструкция по обработке или раздел CDATA. Если они нужны в другом месте их нужно избегать, используя либо числовые ссылки на символы, либо строки « & » и « <» соответственно. Правая угловая скобка (> ) можно представить с помощью строка "> ", и обязательно для совместимость, можно избежать с помощью "> " или ссылка на символ, когда он появляется в строке "]]> " в содержание, когда эта строка не обозначающий конец раздела CDATA.

15
ответ дан 8 December 2019 в 15:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: