xsd – 在XML Schema中定义maxLength方面的语法是什么?
我正在尝试使用多个工具验证
XML模式,但我没有获得一致的消息,具体取决于我使用的工具.以下语法似乎是问题:
<xs:element name="Name" minOccurs="1" type ="xs:string" maxLength = "125"/> XML-Spy触发错误,而Notepad(windows)和XML Copy Editor(Ubuntu)验证它.那语法是正确的,还是应该使用它: <xs:element name="name"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minOccurs="1"/> <xs:maxLength = "125"/> </xs:restriction> </xs:simpleType> </xs:element> 解决方法
你问“我的语法是否正确[在例1中]或者我应该写[例2]?”
都不是. 在第一个示例中,您在xs:element元素上使用了未声明的maxLength属性. (minOccurs属性可能允许也可能不允许,具体取决于上下文;正如Petru Gardea已经指出的那样,它在顶层元素声明上是不合法的.)不会在此引发错误的编辑器没有完成任务检查模式的XSD模式的一致性(更不用说XSD的完全约束).如果您想要对XSD架构文档进行可靠的验证,Xerces,Saxon,MSV或其他一些符合XSD的实现是您的朋友. 在你的第二个例子中,minOccurs已经不再是元素声明的属性(它可以在某些上下文中),并且在xs:restriction(no,wrong)中成为元素(no,wrong). maxLength facet正确表示为xs:restriction的元素子元素,但示例中的元素格式不正确;它似乎试图使用元素类型名称作为属性名称.如果删除错误的minOccurs元素并更正格式错误的maxLength元素,则剩余部分是Name的语法正确的顶级元素声明: <xs:element name="name"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value = "125"/> </xs:restriction> </xs:simpleType> </xs:element> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |