使用XPathNavigator获取ValueType

时间:2015-02-24 10:29:13

标签: c# xml xsd

我尝试使用XElement获取XPathNavigator的值类型,但ValueType始终返回类型String。 我期望导航器返回XSD文档中指定的ValueType。

加载xml和xsd:

XmlReaderSettings aSettings = new XmlReaderSettings();
aSettings.Schemas.Add(myXmlSchemaSet);
aSettings.ValidationType = ValidationType.Schema;

XmlReader aReader = XmlReader.Create(PathToXml, aSettings);
XDocument aDocument = XDocument.Load(aReader);
aDocument.Validate(aSchemaSet, null, true);

获取价值类型:

XPathNavigator aNavigator = aDocument.CreateNavigator();
Type aElementType = aNavigator.SelectSingleNode(myXPath).ValueType;

1 个答案:

答案 0 :(得分:0)

XML to LINQ不支持此功能,因为XNodeNavigator不实现IXmlSchemaInfo并且不会覆盖XPathNavigator.SchemaInfo。

您可以使用支持该功能的System.Xml。