3

XML ファイルの例を次に示します。

<tag value=">this is well formatted xml"/>

これは、MSXML および Apache Xerces で正常にロードできます。

<tag value="<this is not"/>

これは失敗します。

大なり記号と小なり記号は、タグ区切りとして使用されていない場合、XML ファイルではどちらも違法であると思います。しかし、上記の例は大なり記号が問題ないことを示しています。

誰かがこれについて説明したり、ドキュメントへのリンクを提供したりできますか? ありがとう。

4

2 に答える 2

3

XML では文字 "<" と "&" のみが厳密に違法です。大なり文字は合法ですが、それを置き換えるのは良い習慣です。

 Entity References

    Some characters have a special meaning in XML.

    If you place a character like "<" inside an XML element, it will generate an error because the parser interprets it as the start of a new element.

    This will generate an XML error:
    <message>if salary < 1000 then</message>

    To avoid this error, replace the "<" character with an entity reference:
    <message>if salary &lt; 1000 then</message>

    There are 5 predefined entity references in XML:
    &lt;    <   less than
    &gt;    >   greater than
    &amp;   &   ampersand 
    &apos;  '   apostrophe
    &quot;  "   quotation mark

    Note: Only the characters "<" and "&" are strictly illegal in XML. The greater than character is legal, but it is a good habit to replace it.

編集1:

ソースリンクhttp://www.w3schools.com/xml/xml_syntax.asp

XMLに関連するより多くの情報を得ることができます

例:

XML ファイルで不適切にコーディングされた変数は次のようになります。

<mail id="a1" to="&<manager>@mycompany.com" …

XML ファイルで適切にコード化された変数は次のようになります。

<mail id="a1" to="&amp;&lt;manager&gt;@mycompany.com" …&gt;
于 2013-01-09T04:57:19.003 に答える
2

あなたは「なぜ」一方が違法で、もう一方がそうでないのかと尋ねます。XML 構文に関する「なぜ」という質問に対する答えは、多くの場合、SGML の歴史に根ざしています。XML の設計者は、XML が SGML の厳密なサブセットであり、SGML パーサーによって解析できることを確認したかったのです。SGML では、属性値を囲む引用符を省略するなど、XML では不可能な領域での自由が可能になりました。これは、XML が継承した制限の一部を説明しています。

于 2013-01-09T09:10:47.853 に答える