2015-02-24 61 views
0

我嘗試使用XPathNavigator獲取XElement的值類型,但ValueType始終返回爲String類型。 我期望導航器返回XSD文檔中指定的ValueType。使用XPathNavigator獲取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

XML到LINQ不支持此功能,因爲XNodeNavigator沒有實現IXmlSchemaInfo並且不覆蓋XPathNavigator.SchemaInfo 。

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