元素内部元素的 DTD
DTD for elements inside an element
我需要一个 DTD 来验证这样的 XML 文档:
<recipes>
<recipe>
<difficulty>2</difficulty>
<people>4</people>
<procedure>Break an egg and fry it</procedure>
<ingredients>
<ingredient>Egg</ingredient>
<ingredient>...</ingredient>
</ingredients>
</recipe>
...
</recipes>
这是我的 DTD:
<!ELEMENT recipe(difficulty, people, procedure)>
<!ELEMENT difficulty #PCDATA>
<!ELEMENT people #PCDATA>
<!ELEMENT procedure #PCDATA>
不允许声明 <ingredients>
元素,因此 XML 文档不会被验证。如何修改我的 DTD 以实现我的目标?
我的想法是:
<!ELEMENT recipe(difficulty, people, procedure, ingredients)>
<!ELEMENT difficulty #PCDATA>
<!ELEMENT people #PCDATA>
<!ELEMENT procedure #PCDATA>
<!ELEMENT ingredients(ingredient)>
<!ELEMENT ingredient #PCDATA>
但我不确定这是正确的解决方案。
您使用 +
运算符表示您可以在另一个元素中包含多个同名元素。在这种情况下,它看起来像这样:
<!ELEMENT ingredients (ingredient+)>
<!ELEMENT ingredient (#PCDATA)>
完整的 DTD 可能如下所示:
<!ELEMENT recipes (recipe+)>
<!ELEMENT recipe (difficulty, people, procedure, ingredients)>
<!ELEMENT difficulty (#PCDATA)>
<!ELEMENT people (#PCDATA)>
<!ELEMENT procedure (#PCDATA)>
<!ELEMENT ingredients (ingredient+)>
<!ELEMENT ingredient (#PCDATA)>
我需要一个 DTD 来验证这样的 XML 文档:
<recipes>
<recipe>
<difficulty>2</difficulty>
<people>4</people>
<procedure>Break an egg and fry it</procedure>
<ingredients>
<ingredient>Egg</ingredient>
<ingredient>...</ingredient>
</ingredients>
</recipe>
...
</recipes>
这是我的 DTD:
<!ELEMENT recipe(difficulty, people, procedure)>
<!ELEMENT difficulty #PCDATA>
<!ELEMENT people #PCDATA>
<!ELEMENT procedure #PCDATA>
不允许声明 <ingredients>
元素,因此 XML 文档不会被验证。如何修改我的 DTD 以实现我的目标?
我的想法是:
<!ELEMENT recipe(difficulty, people, procedure, ingredients)>
<!ELEMENT difficulty #PCDATA>
<!ELEMENT people #PCDATA>
<!ELEMENT procedure #PCDATA>
<!ELEMENT ingredients(ingredient)>
<!ELEMENT ingredient #PCDATA>
但我不确定这是正确的解决方案。
您使用 +
运算符表示您可以在另一个元素中包含多个同名元素。在这种情况下,它看起来像这样:
<!ELEMENT ingredients (ingredient+)>
<!ELEMENT ingredient (#PCDATA)>
完整的 DTD 可能如下所示:
<!ELEMENT recipes (recipe+)>
<!ELEMENT recipe (difficulty, people, procedure, ingredients)>
<!ELEMENT difficulty (#PCDATA)>
<!ELEMENT people (#PCDATA)>
<!ELEMENT procedure (#PCDATA)>
<!ELEMENT ingredients (ingredient+)>
<!ELEMENT ingredient (#PCDATA)>