1. ホーム
  2. xml

[解決済み] XMLの<![CDATA[]]>は何を意味するのですか?

2022-03-16 18:54:11

質問

よく不思議に思うことがあります。 CDATA タグを XML ファイルを作成します。

<![CDATA[some stuff]]>

私は、この CDATA タグはいつも最初に来て、その後に何か続く。

しかし、それが使われることもあれば、使われないこともある。私が思うに、それは some stuff は、その後に挿入される "データ" です。しかし、どのようなデータかというと some stuff ? XMLタグで書いたものは、ある種のデータではないのでしょうか?

どのように解決するのですか?

CDATA 文字データ というデータが含まれていることを意味し、これらの文字列に挟まれたデータには 可能性がある はXMLマークアップとして解釈されるが、解釈されるべきではない。

CDATAとコメントの主な違いは以下の通りです。

これは、1つの整形された文書から、これら4つのXMLの断片が与えられたことを意味します。

<!ENTITY MyParamEntity "Has been expanded">


<!--
Within this comment I can use ]]>
and other reserved characters like <
&, ', and ", but %MyParamEntity; will not be expanded
(if I retrieve the text of this node it will contain
%MyParamEntity; and not "Has been expanded")
and I can't place two dashes next to each other.
-->


<![CDATA[
Within this Character Data block I can
use double dashes as much as I want (along with <, &, ', and ")
*and* %MyParamEntity; will be expanded to the text
"Has been expanded" ... however, I can't use
the CEND sequence. If I need to use CEND I must escape one of the
brackets or the greater-than sign using concatenated CDATA sections.
]]>


<description>An example of escaped CENDs</description>
<!-- This text contains a CEND ]]> -->
<!-- In this first case we put the ]] at the end of the first CDATA block
     and the > in the second CDATA block -->
<data><![CDATA[This text contains a CEND ]]]]><![CDATA[>]]></data>
<!-- In this second case we put a ] at the end of the first CDATA block
     and the ]> in the second CDATA block -->
<alternative><![CDATA[This text contains a CEND ]]]><![CDATA[]>]]></alternative>