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