使用minOccurs和maxOccurs属性的xml架构验证错误

时间:2013-02-23 14:53:36

标签: xml xsd

我是xml架构的新手并做了一项任务,我遇到了一个问题。我正在使用w3schools.com上的教程和位于http://www.validome.org/grammar/validate/的验证器 下面是我的架构的开头,它不会验证:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="products">
     <xs:complexType>
       <xs:element name="product" minOccurs="1" maxOccurs="unbounded">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="fname" type="xs:string"/>
             <xs:element name="manufacturer" type="xs:string"/>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
    </xs:complexType>
   </xs:element>
 </xs:schema>

Validator表示第5行存在许多问题: 1.它表示不允许使用minOccurs和maxOccurs属性 2.从元素'xs:element'开始找到无效内容。

据我所知,我正在关注w3schools教程。 注意:如果我删除第3行和第4行及其相应的结束标记,以及minOccurs和maxOccurs属性,则文档会进行验证。

有人可以帮忙吗? 提前致谢

1 个答案:

答案 0 :(得分:2)

xs:element不能直接作为xs:complexType的子项出现;你需要设置一个xs:sequence元素。这是撒克逊人的信息:

  

test.xsd:Element的第4行第71行的xs:element错误   xs:element不能出现在这里:{choice,sequence,   assert,openContent,annotation,attributeGroup,anyAttribute,   simpleContent,all,attribute,group,complexContent}或者什么都没有