なぜこれが妥当なXML DTDではないでしょうか? (パラメータエンティティと#PCDATA)
-
25-09-2019 - |
質問
DTDを使用してバリここを、私は次のDTDが無効であることを知らされています。
<!ENTITY % text "(#PCDATA|L)*">
<!ELEMENT H (%text;)+>
<!ELEMENT L (#PCDATA)>
エラーメッセージである「 『H』 A 『(』文字または要素型は、要素型の宣言内で必要とされる」行2、列22に
それが無効である理由缶誰もが指摘してください?そして、どのように私はそれを有効にすることができますか?エラーメッセージは正確に私には非常に友好的ではありません。おかげます。
解決
あなたは混在したコンテンツを持つ要素は、少なくとも一つの子ノードを持たなければならないことを強制することはできません。あなたのDTDになる。
<!ELEMENT H ((#PCDATA|L)*)+>
エンティティが展開されている。混合コンテンツを持つ要素に対してのみ許可フォームがある
(#PCDATA | A | B | C)*
A、B及びCが可能子要素です。 #PCDATA
の必要がありますの最初の選択肢とのセットが0・無限回繰り返すが許可されなければならないこと、すなわち、アスタリスクが必要とされます。
所属していません StackOverflow