我尝试使用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;
答案 0 :(得分:0)
XML to LINQ不支持此功能,因为XNodeNavigator不实现IXmlSchemaInfo并且不会覆盖XPathNavigator.SchemaInfo。
您可以使用支持该功能的System.Xml。