2016-12-06 2 views
0

xml1 & 2はどのようにDTDに適合しませんか? 'elm1'と 'eml2'が一度登場して以来、要素(*:ゼロ以上、+:少なくとも1回、?もしそうでなければDTDをどのように変更すべきですか?XMLで有効なDTD

<?xml version="1.0"?> 
<!DOCTYPE root[ 
<!ELEMENT root (elm1*,elm2+)> 
<!ELEMENT elm1 (#PCDATA)> 
<!ELEMENT elm2 (#PCDATA)> 
]> 

XML 1

<root> 
<elm1>Blobby</elm1> 
</root> 

XML 2

<root> 
<elm2>Blobby</elm2> 
</root> 

答えて

2

ルート要素

<!ELEMENT root (elm1*,elm2+)> 
のためのあなたの宣言ので、私は検証する "XML 2" ではなく "XML 1" を期待します

は、基本的には「ルートは0またはelm1子供がいて、少なくとも1つ以上elm2子供が必要です。

おそらくこれが必要ですか?

<!ELEMENT root (elm1*,elm2*)> 
+1

_Iは "XML 1"は検証するが、 "XML 2"は検証しないことを期待しています_これは後方にあると思います。 'elm2'が' elm1'の後に来なければならないことを明確にするのにも役立ちます。他のすべてはよさそうだ。 +1 –

+0

そうだと思います。ありがとう!彼らはサブチャイルドを持っていないので(elm1?、eml2?)できますか? –

+0

@DanielHaleyありがとうございます!編集されました。 – RamblinRose

関連する問題