gol*_*p04 15 xml xsd xml-validation
我正在尝试根据给定的XML文件开发XSD语法.给定的XML文件itemList.xml如下所示.
<?xml version="1.0" encoding = "utf-8"?>
<itemList
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com itemList.xsd" >
<item>spoon</item>
<item>knife</item>
<item>fork</item>
<item>cup</item>
</itemList>
Run Code Online (Sandbox Code Playgroud)
我开发的itemList.xsd文件如下所示.
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:co="http://www.w3schools.com"
targetNamespace="http://www.w3schools.com"
elementFormDefault="qualified">
<simpleType name="itemType">
<restriction base="string"/>
</simpleType>
<complexType name="itemListType">
<sequence>
<element name="item" type="co:itemType"/>
</sequence>
</complexType>
<element name="itemList" type="co:itemListType"/>
</schema>
Run Code Online (Sandbox Code Playgroud)
Cvc-complex-type.2.4.d: Invalid Content Was Found Starting With Element 'item'. No Child Element Is Expected At This Point.. Line '6', Column '12'.
Run Code Online (Sandbox Code Playgroud)
看来我应该重写我complexType
的itemList.xsd,但我不知道该怎么做.非常感谢任何可以提供帮助的人.
Pet*_*dea 28
您的itemList目前只由一个项目组成; 这是因为默认的粒子基数是1(minOccurs = maxOccurs = 1).
如果你想要多个,那么你需要添加带有适当数字的maxOccurs属性; 对于无限制,使用maxOccurs ="unbounded"......就像这样:
<element name="item" type="co:itemType" maxOccurs="unbounded"/>
Run Code Online (Sandbox Code Playgroud)
Dav*_*Rlz 13
在我的情况下,我得到了这条消息,因为我的XML中的字段顺序与我的XSD中的字段顺序不一致,我错误地颠倒了最后两个字段的顺序.
虽然这不是问题中的情况,但我认为这可能会帮助那些被这个问题所吸引的人(无疑我将来会再次提到这个问题,因为我忘记了我刚刚学到的东西).