0

次の要素宣言を実行しようとしています: XML 要素は、テキストまたは要素で構成されている場合がありますが、少なくとも 1 つの要素で構成されている必要があります。

私が行った場合:

<!ELEMENT myelem (#PCDATA|myanotherelem)*>

これは、myelem がまだ空である可能性があることを意味します。私は使用することを考えました

(#PCDATA|myanotherelem)+

ただし、混合コンテンツ モデルはゼロ ベースにする必要があります。どうすれば対処できますか?

4

1 に答える 1

2

XML DTD のコンテンツ モデルの唯一の正当な形式は(#PCDATA)(#PCDATA | a | b | ... | z)*一部の数要素 (ゼロ以上) の a、b、... z です。

フォームの要素<myelem></myelem>は、実際には XML 仕様によって #PCDATA コンテンツを持つと見なされることに注意してください。長さがゼロでない #PCDATA コンテンツを指定することはまったく不合理ではありませんが、実際にはキーワード#PCDATA意味。課したい制約 (#PCDATA コンテンツの最小長 -- おそらく空白文字だけで構成されていないことも要求したい) は、DTD 表記では表現できません。これは、他のスキーマ言語 (XSD や Relax NG など) がデータ型によって追加する機能の 1 つです。

于 2013-01-23T08:17:42.503 に答える