从 .net 中的 xsd 模式文件中提取枚举值

4

本文介绍了从 .net 中的 xsd 模式文件中提取枚举值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

如何使用 .net 以编程方式从 xsd 模式文件中提取元素的枚举约束值?

How programmatically extract enumeration constraint values of an element from xsd schema file using .net?

例如,我想从以下 xsd 中提取Audi"、Golf"和BMW":

for example I'd like to extract 'Audi', 'Golf' and 'BMW' from the following xsd:

<xs:element name="car">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Audi"/>
      <xs:enumeration value="Golf"/>
      <xs:enumeration value="BMW"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

推荐答案

有一个XmlSchema 类,但它看起来很漂亮......有趣".

There is an XmlSchema class, but it looks pretty... "fun" to work with.

xml查询就够了吗?

XmlDocument doc = new XmlDocument();
doc.Load("Foo.xsd");            
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable);
mgr.AddNamespace("xx", "http://www.w3.org/2001/XMLSchema");
foreach (XmlElement el in doc.SelectNodes("//xx:element[@name='car'][1]/xx:simpleType/xx:restriction/xx:enumeration", mgr))
{
    Console.WriteLine(el.GetAttribute("value"));
}

这篇关于从 .net 中的 xsd 模式文件中提取枚举值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

C# 中的多播委托奇怪行为?
Multicast delegate weird behavior in C#?(C# 中的多播委托奇怪行为?)...
2023-11-11 C#/.NET开发问题
6

如何将代表存储在列表中
How to store delegates in a List(如何将代表存储在列表中)...
2023-11-11 C#/.NET开发问题
6

代表如何工作(在后台)?
How delegates work (in the background)?(代表如何工作(在后台)?)...
2023-11-11 C#/.NET开发问题
5

Delegate.CreateDelegate() 和泛型:错误绑定到目标方法
Delegate.CreateDelegate() and generics: Error binding to target method(Delegate.CreateDelegate() 和泛型:错误绑定到目标方法)...
2023-11-11 C#/.NET开发问题
14

函数委托与函数
Func Delegate vs Function(函数委托与函数)...
2023-11-11 C#/.NET开发问题
6

具有未知类型的 CreateDelegate
CreateDelegate with unknown types(具有未知类型的 CreateDelegate)...
2023-11-11 C#/.NET开发问题
5