2011-06-27 5 views
1

DTDに対してxmlファイルを検証する必要があります。子要素を知らないとDTD要素を追加する方法

時々、子要素はもっとすることができ、私は要素が次回出てくるどのような子供を知らない、私は次のことを試してみました:

<!ELEMENT Story (StoryPara+ , ANY+)+> 

が、これは動作しませんでした、任意の子要素に対して検証する方法DTDを使用していますか?

答えて

1

"ANY"とコンテンツモデルの他のものを混在させることはできません。

あなたの現在の要素宣言が言っていること:少なくとも1つの "StoryPara"要素とそれに続く1つ以上の " ANY」要素(複数可)

はこれにあなたの要素宣言を変更し

<!ELEMENT Story ANY> 

のいずれかの子ことに注意してください "" ストーリーも定義する必要があります。

<?xml version="1.0"?> 
<!DOCTYPE test [ 
<!ELEMENT test ANY> 
<!ELEMENT foo (#PCDATA)> 
]> 
<test> 
    <foo>This element is defined.</foo> 
</test> 

が、これはない "バー" が定義されていないためである:

たとえば、これは有効である

<?xml version="1.0"?> 
<!DOCTYPE test [ 
<!ELEMENT test ANY> 
<!ELEMENT foo (#PCDATA)> 
]> 
<test> 
    <foo>This element is defined.</foo> 
    <bar>This element is not defined.</bar> 
</test> 
関連する問題