我有一个简单的XML数据,并希望使用我的XSD文件来验证它。我想以任何一种“面向对象”的方式创建XSD文件。因为至少在我看来,理解/阅读更好。
我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<DSExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="TestXSD.xsd">
<Job Identifier="someString1">
<Project name="someString2">
<tag1 />
<tag2 />
</Project>
</Job>
</DSExport>我的XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- "MAIN" -->
<xs:element name="DSExport">
<xs:complexType>
<xs:sequence>
<xs:element name="Job" type="JobType">
<!-- NOTE: SOMETHING WENT WRONG HERE -->
<xs:sequence>
<xs:element name="Project" type="ProjectType">
<xs:sequence>
<xs:element name="tag3"></xs:element>
<xs:element name="tag4"></xs:element>
</xs:sequence>
</xs:element>
</xs:sequence>
<!-- NOTE: SOMETHING WENT WRONG HERE -->
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- "FUNCTIONS" (WANT TO SEPERATE THE SPECIALIZED VALIDATION OF ALL ELEMENTS)-->
<xs:complexType name="JobType">
<xs:attribute name="Identifier" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="ProjectType">
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
我用月食。我收到了这样的错误信息:
s4s-elt-must-match.1: The content of 'Job' must match (annotation?, (simpleType | complexType)?, (unique |
key | keyref)*)). A problem was found starting at: sequence.我知道如何解决这个问题如果我把“主”部分的每个部分都写下来.但我如何像“面向对象”那样解决这个问题呢?我想分离每个元素的complexType定义!
谢谢你的帮忙!
发布于 2015-10-14 09:42:47
您已经两次定义了“职务”和“项目”元素。应该将序列移动到类型定义,如下所示:
<xs:element name="DSExport">
<xs:complexType>
<xs:sequence>
<xs:element name="Job" type="JobType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="JobType">
<xs:sequence>
<xs:element name="Project" type="ProjectType"/>
</xs:sequence>
<xs:attribute name="Identifier" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="ProjectType">
<xs:sequence>
<xs:element name="tag3"></xs:element>
<xs:element name="tag4"></xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>https://stackoverflow.com/questions/33121638
复制相似问题