【发布时间】:2018-08-16 12:14:07
【问题描述】:
我正在使用XmlReader 针对 XSD 验证 XML 文件并读取每个节点以进行进一步验证。
在 XSD 中,一些节点规则是这样声明的:
<xs:simpleType name="ShortValue">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="4"/>
</xs:restriction>
</xs:simpleType>
读取节点时,有没有办法检索XSD中声明的当前节点的simpleType(或XSD类型)?
【问题讨论】:
-
如果您使用的是验证阅读器(使用
XmlReaderSettings.ValidationType设置创建的阅读器),那么XmlReader.SchemaInfo应该在当前节点上拥有您想知道的所有内容(特别是SchemaType.Name)。免责声明:从未使用过,未经测试。 -
谢谢@JeroenMostert !!这正是我一直在寻找的。你能发表你的评论作为回应吗?
-
我想将其扩展为一个完整的可立即运行的答案,但即使是带有模式的基本示例也很复杂,因此必须这样做。如果您认为有必要,请随时编辑更多内容。