В настоящее время я не могу получить доступ к содержанию каких-либо комментариев в XSD, из которых я пытаюсь прочитать.
Вот фрагмент XSD, из которого я пытаюсь прочитать комментарии:
<xs:schema>
<xs:complexType name="typeName">
<xs:choice>
<xs:element name="elementName" type="someOtherType"><!--This is a comment I would like to access.--></xs:element>
</xs:choice>
</xs:complexType>
</xs:schema>
Я использую VB.Net. Вот фрагмент класса, который пытается получить доступ к комментарию XML из приведенного выше XSD:
Public Class QAutoTestXSD
Private XML As MSXML2.DOMDocument60
Public Sub New()
XML = New MSXML2.DOMDocument60
Call XML.setProperty("SelectionNamespaces", "xmlns:xs='http://www.w3.org/2001/XMLSchema'")
XML.async = False
If Not XML.load("C:\myXML.xml") Then
Call handleParsingError
End If
End Sub
Public Function getXSDComment(typeName As String, elementName As String) As String
getXSDComment = XML.selectSingleNode("/xs:schema/xs:complexType[@name='" & typeName & "TestType']/xs:choice/xs:element[@name='" & elementName & "']/comment()").nodeValue
End Function
End Class
Изменив аргумент XPATH для selectSingleNode, я могу успешно получить доступ ко всем другим типам узлов в XSD, однако мне еще предстоит успешно выбрать какие-либо узлы типа комментария, даже используя «// comment ()». Любая помощь приветствуется!
loadXML
принимает строку с разметкой XML, а не имя файла. И почему вы используете MSXML с .NET, System.Xml.XmlDocument или System.Xml.Linq.XDocument - это чисто управляемые реализации. Также//comments()
должен выдать ошибку XPath, проверка узла - единственное число//comment()
. - person Martin Honnen   schedule 23.06.2014