【发布时间】:2019-03-18 04:46:35
【问题描述】:
我的架构无法识别数据中的错误,是否有明显的原因?请参阅下文,基本上对于我创建的限制,当提供其他信息时它应该会出现错误,但我的情况并非如此。它只是看起来有效。在这里,我使用类型字符串应用了一个限制并枚举它。它应该抛出验证错误,因为在某些地方拼写不正确。
Shorten version:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Midterm">
<xs:complexType>
<xs:sequence>
<xs:element name="StudentData" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Gnumber"/>
<xs:element type="xs:string" **name="ResidenceStatus"/>
**<xs:simpletype>
<xs:restriction base="xs:string">
<xs:enumeration value="In-state"/>
<xs:enumeration value="Out-of-state"/>
</xs:restriction>
</xs:simpletype>****
<xs:element type="xs:string" name="FirstName"/>
<xs:element type="xs:string" name="MiddleInitial"/>
<xs:element type="xs:string" name="LastName"/>
<xs:element type="xs:string" name="DOB"/>
<xs:element type="xs:string" name="ProgramName"/>
<xs:element type="xs:string" name="Concentration"/>
<xs:element type="xs:float" name="StartYear"/>
<xs:element name="course">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Department"/>
<xs:element type="xs:float" name="CatalogNumber"/>
<xs:element type="xs:string" name="Semester"/>
<xs:element type="xs:float" name="Year"/>
<xs:element type="xs:string" name="LetterGrade"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML 数据
<Midterm>
<StudentData>
<Gnumber> G12654312 </Gnumber>
<ResidenceStatus> In-state </ResidenceStatus>
<FirstName> ALBERTO </FirstName>
<MiddleInitial> L </MiddleInitial>
<LastName> SMITH </LastName>
<DOB> 2/3/1981 </DOB>
<ProgramName> MS Health Informatics </ProgramName>
<Concentration> Data analytics </Concentration>
<StartYear> 2014 </StartYear>
<course>
<Department> HAP </Department>
<CatalogNumber> 463 </CatalogNumber>
<Semester> SPRING </Semester>
<Year> 2014 </Year>
<LetterGrade> B+ </LetterGrade>
</course>
</StudentData>
</Midterm>
【问题讨论】:
-
好吧,您的 XSD 不完整,您还没有共享相关的 XML。所以这个问题没有提供minimal reproducible example - 这是这类问题的必填项。
-
另外,您如何使用架构验证您的 xml?
-
@DanielHaley 我正在根据我的 xml 数据验证它,两者都说有正确的语法。是这个意思吗?
-
@zx485 有没有办法附加xml?我收到的错误是代码太多,无法开始
-
在向其他人寻求帮助时,您绝对必须包含您的 XML,但是您必须将您的 XML 和 XSD 精简到一个仍然存在问题的相当小的集合。见minimal reproducible example。通常,创建 MCVE 的过程甚至会直接揭示问题。