验证XML和DTD时出现问题

验证XML和DTD时出现问题,xml,dtd,Xml,Dtd,我列出了这个食谱列表,但由于某种原因,当我尝试在OxygenXML编辑器中验证文档时,会收到大量错误消息。 氧气给了我以下错误: 元素类型“成分”不能声明多次 元素类型“name”不能声明多次 元素类型“数量”不能声明多次 意外元素“成分”。父元素的内容必须匹配: (名称+、成分+、数量+、装饰、说明、必要性、准备) 这是我的密码: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE recipes

我列出了这个食谱列表,但由于某种原因,当我尝试在OxygenXML编辑器中验证文档时,会收到大量错误消息。 氧气给了我以下错误:

元素类型“成分”不能声明多次 元素类型“name”不能声明多次 元素类型“数量”不能声明多次 意外元素“成分”。父元素的内容必须匹配: (名称+、成分+、数量+、装饰、说明、必要性、准备)

这是我的密码:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE recipes SYSTEM "recipes.dtd">

<recipes>
    <cocktail>

      <name>Hells Bells</name>

      <ingredients>Batida de Coco</ingredients>
      <quantity> 4cl </quantity>

      <ingredients>caramel sirup</ingredients>
      <quantity> 2 cl </quantity>

      <ingredients>Milk</ingredients>
      <quantity> 8 cl </quantity>

      <ingredients>Strawberry puree</ingredients>
      <quantity> 4 cl </quantity>

      <decoration>Decoration: Strawberry blood with spiders.</decoration>
      <instructions>Instructions: All ingredients should be shaken.</instuctions>

      </cocktail> 

      <cocktail>

        <name>Feuerzangenbowle</name>

        <ingredients>red wine</ingredients>
        <quantity> 1000 ml </quantity>

        <ingredients>cinnamon</ingredients>
        <quantity> 1 </quantity>

        <ingredients>Carnations</ingredients>
        <quantity> 3 </quantity>

        <necessity>500 ml Pott</necessity>

        <preparation>Season with cinnamon stick and cloves.</preparation>

    </cocktail> 

    <appetizer>

      <name>Fresh glass</name>

      <ingredients>avocado</ingredients>
      <quantity> 1 </quantity>

      <ingredients>salmon</ingredients>
      <quantity> 100 g </quantity> 

      <ingredients>chives</ingredients>
      <quantity> stems </quantity>

      <ingredients>lemon</ingredients>
      <quantity> 1 </quantity>

    </appetizer>

    <appetizer>

      <name>Merceiles Hummus</name>

      <ingredients>Chickpeas</ingredients>
      <quantity> 400 g </quantity>

      <ingredients>olive oil</ingredients>
      <quantity> 2 TS </quantity>

      <ingredients>salt</ingredients>
      <quantity> 1 TS </quantity>

      <ingredients>Pepper powder</ingredients>
      <quantity> 1 TS </quantity>

   </appetizer>

   <maindish>

      <name>Pickled salmon</name>

      <ingredients>salmon</ingredients>
      <quantity> 2,5 kg </quantity>

      <ingredients>pepper</ingredients>
      <quantity> 1 TS </quantity>

      <ingredients>salt</ingredients>
      <quantity> 4 TS </quantity>

      <ingredients>honey</ingredients>
      <quantity> 4 TS </quantity>

   </maindish>

   <maindish>

      <name>Beef fillet</name>

      <ingredients>Beef fillet</ingredients>
      <quantity> 1,5 kg </quantity>

      <ingredients>Butterfelt</ingredients>
      <quantity> 20 g </quantity>

      <ingredients>thyme</ingredients>
      <quantity> 4 branches </quantity>

   </maindish>

   <dessert>

      <name>Chocolate Muffins</name>

      <ingredients>chocolate</ingredients>
      <quantity> 225 g </quantity>

      <ingredients>butter</ingredients>
      <quantity> 115 g </quantity>

      <ingredients>vanillasuger</ingredients>
      <quantity> 1 TS </quantity>

      <ingredients>sugar</ingredients>
      <quantity> 100 g </quantity>

   </dessert>

   <dessert>

     <name>Tiramisu</name>

     <ingredients>sugar</ingredients>
     <quantity> 100 g </quantity>

     <ingredients>yolk</ingredients>
     <quantity> 4 </quantity>

     <ingredients>egg whites</ingredients>
     <quantity> 2 </quantity>

     <ingredients>Amaretto</ingredients>
     <quantity> 2 cl </quantity>

   </dessert>

</recipes>

地狱钟声
巴蒂达可可酒店
四氯化碳
焦糖糖浆
2氯
牛奶
8毫升
草莓泥
4氯
装饰:草莓血与蜘蛛。
说明:所有成分都应摇匀。
费尔桑根伯勒
红葡萄酒
1000毫升
肉桂色
1.
康乃馨
3.
500毫升罐
用肉桂棒和丁香调味。
新鲜玻璃
鳄梨
1.
鲑鱼
100克
韭菜
茎
柠檬
1.
鹰嘴水星
鹰嘴豆
400克
橄榄油
2 TS
盐
1 TS
胡椒粉
1 TS
腌三文鱼
鲑鱼
2.5公斤
胡椒粉
1 TS
盐
4 TS
蜂蜜
4 TS
牛柳
牛柳
1.5公斤
油毡
20克
百里香
4个分支
巧克力松饼
巧克力
225克
黄油
115克
香草糖
1 TS
糖
100克
提拉米苏
糖
100克
蛋黄
4.
蛋白
2.
芳津杏仁
2氯
以下是DTD:

<!-- DTD document recipes.xml  -->

<!ELEMENT recipes (cocktail+, appetizer+, maindish+, dessert+)>

<!ELEMENT cocktail (name+, ingredients+, quantity+, decoration, instructions, neccessity, preparation)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT ingredients (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT decoration (#PCDATA)>
<!ELEMENT instructions (#PCDATA)>
<!ELEMENT neccessity (#PCDATA)>
<!ELEMENT preparation (#PCDATA)>

<!ELEMENT appetizer (name+, ingredients+, quantity+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT ingredients (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>

<!ELEMENT maindish (name+, ingredients+, quantity+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT ingredients (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>

<!ELEMENT dessert (name+, ingredients+, quantity+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT ingredients (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>

我真的不知道该怎么办了,非常感谢你的帮助! 提前感谢您的回答

p.S—XML的新特性

这些错误是不言自明的;在DTD中只能声明一次元素(声明

此错误表示
成分
元素不正确。
配料
鸡尾酒
)的父项必须与DTD中的型号匹配。在这种情况下,
鸡尾酒
必须具有:

  • 一个或多个
    名称
    元素,后跟
  • 一个或多个
    成分
    元素,后跟
  • 一个或多个
    数量
    元素,后跟
  • 只有一个
    装饰
    元素后跟
  • 只有一个
    指令
    元素后跟
  • 正好有一个
    neccessity
    元素,后跟
  • 只有一个
    准备
    元素
看看您的XML,这看起来不像您想要的。您可能想要看起来更像这样的东西:

(name+, (ingredients, quantity)+, decoration?, instructions?, necessity?, preparation?)
这是:

  • 一个或多个
    名称
    元素,后跟
  • 一个或多个
    • 只有一个
      成分
      元素后跟
    • 只有一个
      数量
      元素
  • 零或一个
    装饰
    元素,后跟
  • 零或一个
    指令
    元素,后跟
  • 零或一个
    必要性
    元素,后跟
  • 零或一个
    准备
    元素
您在DTD和XML中的
必要性
拼写不同;他们需要匹配

您还拼错了第一个
鸡尾酒
中的
说明
结束标记

开胃菜
主菜
甜点
的模型中,
配料
后跟
数量
一次或多次的部分也应更新

以下是更新的DTD:

<!ELEMENT recipes (cocktail+, appetizer+, maindish+, dessert+)>

<!ELEMENT cocktail (name+, (ingredients, quantity)+, decoration?, instructions?, necessity?, preparation?)>
<!ELEMENT appetizer (name+, (ingredients, quantity)+)>
<!ELEMENT maindish (name+, (ingredients, quantity)+)>
<!ELEMENT dessert (name+, (ingredients, quantity)+)>

<!ELEMENT name (#PCDATA)>
<!ELEMENT ingredients (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT decoration (#PCDATA)>
<!ELEMENT instructions (#PCDATA)>
<!ELEMENT necessity (#PCDATA)>
<!ELEMENT preparation (#PCDATA)>

和XML文件:

<!DOCTYPE recipes SYSTEM "recipes.dtd">
<recipes>
    <cocktail>

        <name>Hells Bells</name>

        <ingredients>Batida de Coco</ingredients>
        <quantity> 4cl </quantity>

        <ingredients>caramel sirup</ingredients>
        <quantity> 2 cl </quantity>

        <ingredients>Milk</ingredients>
        <quantity> 8 cl </quantity>

        <ingredients>Strawberry puree</ingredients>
        <quantity> 4 cl </quantity>

        <decoration>Decoration: Strawberry blood with spiders.</decoration>
        <instructions>Instructions: All ingredients should be shaken.</instructions>

    </cocktail> 

    <cocktail>

        <name>Feuerzangenbowle</name>

        <ingredients>red wine</ingredients>
        <quantity> 1000 ml </quantity>

        <ingredients>cinnamon</ingredients>
        <quantity> 1 </quantity>

        <ingredients>Carnations</ingredients>
        <quantity> 3 </quantity>

        <necessity>500 ml Pott</necessity>

        <preparation>Season with cinnamon stick and cloves.</preparation>

    </cocktail> 

    <appetizer>

        <name>Fresh glass</name>

        <ingredients>avocado</ingredients>
        <quantity> 1 </quantity>

        <ingredients>salmon</ingredients>
        <quantity> 100 g </quantity> 

        <ingredients>chives</ingredients>
        <quantity> stems </quantity>

        <ingredients>lemon</ingredients>
        <quantity> 1 </quantity>

    </appetizer>

    <appetizer>

        <name>Merceiles Hummus</name>

        <ingredients>Chickpeas</ingredients>
        <quantity> 400 g </quantity>

        <ingredients>olive oil</ingredients>
        <quantity> 2 TS </quantity>

        <ingredients>salt</ingredients>
        <quantity> 1 TS </quantity>

        <ingredients>Pepper powder</ingredients>
        <quantity> 1 TS </quantity>

    </appetizer>

    <maindish>

        <name>Pickled salmon</name>

        <ingredients>salmon</ingredients>
        <quantity> 2,5 kg </quantity>

        <ingredients>pepper</ingredients>
        <quantity> 1 TS </quantity>

        <ingredients>salt</ingredients>
        <quantity> 4 TS </quantity>

        <ingredients>honey</ingredients>
        <quantity> 4 TS </quantity>

    </maindish>

    <maindish>

        <name>Beef fillet</name>

        <ingredients>Beef fillet</ingredients>
        <quantity> 1,5 kg </quantity>

        <ingredients>Butterfelt</ingredients>
        <quantity> 20 g </quantity>

        <ingredients>thyme</ingredients>
        <quantity> 4 branches </quantity>

    </maindish>

    <dessert>

        <name>Chocolate Muffins</name>

        <ingredients>chocolate</ingredients>
        <quantity> 225 g </quantity>

        <ingredients>butter</ingredients>
        <quantity> 115 g </quantity>

        <ingredients>vanillasuger</ingredients>
        <quantity> 1 TS </quantity>

        <ingredients>sugar</ingredients>
        <quantity> 100 g </quantity>

    </dessert>

    <dessert>

        <name>Tiramisu</name>

        <ingredients>sugar</ingredients>
        <quantity> 100 g </quantity>

        <ingredients>yolk</ingredients>
        <quantity> 4 </quantity>

        <ingredients>egg whites</ingredients>
        <quantity> 2 </quantity>

        <ingredients>Amaretto</ingredients>
        <quantity> 2 cl </quantity>

    </dessert>

</recipes>

地狱钟声
巴蒂达可可酒店
四氯化碳
焦糖糖浆
2氯
牛奶
8毫升
草莓泥
4氯
装饰:草莓血与蜘蛛。
说明:所有成分都应摇匀。
费尔桑根伯勒
红葡萄酒
1000毫升
肉桂色
1.
康乃馨
3.
500毫升罐
用肉桂棒和丁香调味。
新鲜玻璃
鳄梨
1.
鲑鱼
100克
韭菜
茎
柠檬
1.
鹰嘴水星
鹰嘴豆
400克
橄榄油
2 TS
盐
1 TS
胡椒粉
1 TS
腌三文鱼
鲑鱼
2.5公斤
胡椒粉
1 TS
盐
4 TS
蜂蜜
4 TS
牛柳
牛柳
1.5公斤
油毡
20克
百里香
4个分支
巧克力松饼
巧克力
225克
黄油
115克
香草糖
1 TS
糖
100克
提拉米苏
糖
100克
蛋黄
4.
蛋白
2.
芳津杏仁
2氯
<!ELEMENT recipes (cocktail+, appetizer+, maindish+, dessert+)>

<!ELEMENT cocktail (name+, (ingredients, quantity)+, decoration?, instructions?, necessity?, preparation?)>
<!ELEMENT appetizer (name+, (ingredients, quantity)+)>
<!ELEMENT maindish (name+, (ingredients, quantity)+)>
<!ELEMENT dessert (name+, (ingredients, quantity)+)>

<!ELEMENT name (#PCDATA)>
<!ELEMENT ingredients (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT decoration (#PCDATA)>
<!ELEMENT instructions (#PCDATA)>
<!ELEMENT necessity (#PCDATA)>
<!ELEMENT preparation (#PCDATA)>
<!DOCTYPE recipes SYSTEM "recipes.dtd">
<recipes>
    <cocktail>

        <name>Hells Bells</name>

        <ingredients>Batida de Coco</ingredients>
        <quantity> 4cl </quantity>

        <ingredients>caramel sirup</ingredients>
        <quantity> 2 cl </quantity>

        <ingredients>Milk</ingredients>
        <quantity> 8 cl </quantity>

        <ingredients>Strawberry puree</ingredients>
        <quantity> 4 cl </quantity>

        <decoration>Decoration: Strawberry blood with spiders.</decoration>
        <instructions>Instructions: All ingredients should be shaken.</instructions>

    </cocktail> 

    <cocktail>

        <name>Feuerzangenbowle</name>

        <ingredients>red wine</ingredients>
        <quantity> 1000 ml </quantity>

        <ingredients>cinnamon</ingredients>
        <quantity> 1 </quantity>

        <ingredients>Carnations</ingredients>
        <quantity> 3 </quantity>

        <necessity>500 ml Pott</necessity>

        <preparation>Season with cinnamon stick and cloves.</preparation>

    </cocktail> 

    <appetizer>

        <name>Fresh glass</name>

        <ingredients>avocado</ingredients>
        <quantity> 1 </quantity>

        <ingredients>salmon</ingredients>
        <quantity> 100 g </quantity> 

        <ingredients>chives</ingredients>
        <quantity> stems </quantity>

        <ingredients>lemon</ingredients>
        <quantity> 1 </quantity>

    </appetizer>

    <appetizer>

        <name>Merceiles Hummus</name>

        <ingredients>Chickpeas</ingredients>
        <quantity> 400 g </quantity>

        <ingredients>olive oil</ingredients>
        <quantity> 2 TS </quantity>

        <ingredients>salt</ingredients>
        <quantity> 1 TS </quantity>

        <ingredients>Pepper powder</ingredients>
        <quantity> 1 TS </quantity>

    </appetizer>

    <maindish>

        <name>Pickled salmon</name>

        <ingredients>salmon</ingredients>
        <quantity> 2,5 kg </quantity>

        <ingredients>pepper</ingredients>
        <quantity> 1 TS </quantity>

        <ingredients>salt</ingredients>
        <quantity> 4 TS </quantity>

        <ingredients>honey</ingredients>
        <quantity> 4 TS </quantity>

    </maindish>

    <maindish>

        <name>Beef fillet</name>

        <ingredients>Beef fillet</ingredients>
        <quantity> 1,5 kg </quantity>

        <ingredients>Butterfelt</ingredients>
        <quantity> 20 g </quantity>

        <ingredients>thyme</ingredients>
        <quantity> 4 branches </quantity>

    </maindish>

    <dessert>

        <name>Chocolate Muffins</name>

        <ingredients>chocolate</ingredients>
        <quantity> 225 g </quantity>

        <ingredients>butter</ingredients>
        <quantity> 115 g </quantity>

        <ingredients>vanillasuger</ingredients>
        <quantity> 1 TS </quantity>

        <ingredients>sugar</ingredients>
        <quantity> 100 g </quantity>

    </dessert>

    <dessert>

        <name>Tiramisu</name>

        <ingredients>sugar</ingredients>
        <quantity> 100 g </quantity>

        <ingredients>yolk</ingredients>
        <quantity> 4 </quantity>

        <ingredients>egg whites</ingredients>
        <quantity> 2 </quantity>

        <ingredients>Amaretto</ingredients>
        <quantity> 2 cl </quantity>

    </dessert>

</recipes>