2010-12-13 15 views
1

誰かが最後に「*」を追加する必要がある道に(DTD中)mixetコンテンツ要素を知っていますか?例えばDTDと混合コンテンツ

<!ELEMENT note (#PCDATA|to|from|header|message)*>

私は再び何かを繰り返したくない場合にrefferingよ...私はちょうど#PCDATAと他の要素の間で選択することができるようにしたいです。

私は ...私はdeclerationの最後に「*」をドロップする場合、私は悪いDTDのdeclerationを取得することを知っている。しかし - 私はその理由が何であるか見当がつかない...

誰でも知っている理由は?あなたがどんな

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE things [ 
    <!ELEMENT things ANY> 
]> 
<things> 
    <person name="a" /> 
    <cats /> 
    <dogs /> 
    <animals><a rel="gogo" /></animals> 
</things> 

を使用したい

+0

... 例は次のとおりです。 amiad21

答えて

0

はまた、*は、より多くの出現にゼロのための演算子です。したがって、(element|element2)*は/または

6

のいずれかです。混合コンテンツモデルでは、どの要素の順序や数が制限されているため、この制限が適用されます。これはXML Specification自身が必要とする、恐れていることです。

混在している内容はです。ハード私は恐れています。このモデルは、ドキュメントを念頭に置いて設計されています。インラインテキストを考えると理にかなっていますが、他の多くの場合はそうではありません。選択肢がある場合は、PCDATAを含む要素を作成することをお勧めします。あなたができなければ、混在したコンテンツモデルの限界に悩まされているのではないかと心配しています(別のスキーマ言語を使用しても私は恐怖を感じません)。私が書いた例が表示されていないいくつかの理由

+0

こんにちは、すべての ファースト - ありがとう! 私はそのような場合はwhay見つけるためにしようとしている ...それは仕様であることを知っていますか? *が必要でない場合はどのような問題がありますか? – amiad21

+0

ああ:)それは良いスタートです。 SGMLには、「悪質な混在コンテンツ」という問題があります。あなたがグーグルなら、あなたは良い説明を見つけるでしょう。 XMLは、有害な混在コンテンツが発生しないように設計されています。この混在したコンテンツモデルの制限は、それが起こり得ないことを保証する。 –

関連する問題