【发布时间】:2018-04-06 11:09:19
【问题描述】:
我注意到,如果我使用 Salami Slice XSD Schema 格式,C# 中的 XML Validator 可以正常工作。
但是,如果我在 Russian Doll 格式中使用相同的 XSD,XML 验证器 会失败。
请注意,在这两种情况下,我都使用 Visual Studio 提供的 xsd.exe 生成 xsdclass.cs。
有人可以解释为什么?我花了 30 分钟来理解它,我很头疼。
俄罗斯娃娃格式(不工作):
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="kyactusprofile">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="username"/>
<xs:element type="xs:string" name="userid"/>
<xs:element type="xs:string" name="useDefaultFolder"/>
<xs:element type="xs:string" name="autoAcceptDownloads"/>
<xs:element type="xs:string" name="visible"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Salami Slice 中的相同 XSD(工作):
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="username" type="xs:string"/>
<xs:element name="userid" type="xs:string"/>
<xs:element name="useDefaultFolder" type="xs:string"/>
<xs:element name="autoAcceptDownloads" type="xs:string"/>
<xs:element name="visible" type="xs:string"/>
<xs:element name="kyactusprofile">
<xs:complexType>
<xs:sequence>
<xs:element ref="username"/>
<xs:element ref="userid"/>
<xs:element ref="useDefaultFolder"/>
<xs:element ref="autoAcceptDownloads"/>
<xs:element ref="visible"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我得到的错误是:
Warning: Matching schema not found. No validation occurred.Impossibile trovare informazioni sullo schema per l'elemento 'http://www.w3.org/2001/XMLSchema:schema'. Warning: Matching schema not found. No validation occurred.Impossibile trovare informazioni sullo schema per l'attributo 'attributeFormDefault'. Warning: Matching schema not found. No validation occurred.Impossibile trovare informazioni sullo schema per l'attributo 'elementFormDefault'. Warning: Matching schema not found. No validation occurred.Impossibile trovare informazioni sullo schema per l'elemento 'http://www.w3.org/2001/XMLSchema:element'.
【问题讨论】:
-
你真的可以用工作版本反序列化数据,还是你只是没有收到验证错误?
-
您是否收到任何异常或其他错误消息?如果是这样,您能否将其包含在问题中?
-
我能够反序列化/序列化两种格式的数据,但使用其他 XSD 验证器。 WPF C# XmlSchemaSet 仅适用于 SalamiSlice。
-
我没有收到任何错误,只是说 XML 对 XSD 无效。
-
这个怎么说;确切的信息是什么?
标签: c# xml validation xsd