【问题标题】:Get current node simpleType获取当前节点 simpleType
【发布时间】: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 !!这正是我一直在寻找的。你能发表你的评论作为回应吗?
  • 我想将其扩展为一个完整的可立即运行的答案,但即使是带有模式的基本示例也很复杂,因此必须这样做。如果您认为有必要,请随时编辑更多内容。

标签: c# xml xsd


【解决方案1】:

如果您使用的是验证阅读器(使用XmlReaderSettings.ValidationType 设置创建的阅读器),那么XmlReader.SchemaInfo 应该在当前节点上拥有您想知道的所有内容。特别是架构类型的名称在SchemaInfo.SchemaType.Name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 2011-10-24
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多