У меня есть xsd с элементами аннотации, которые, в свою очередь, содержат элемент appinfo. Я использую элемент appinfo для передачи некоторой пользовательской информации о схеме, и мне нужно извлечь содержимое appinfo, пока я просматриваю элемент.
Фрагмент из xsd.
<xsd:element name = "Entity">
<xsd:annotation>
<xsd:appinfo>EntityReference</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element
minOccurs = "0"
name = "Id"
type = "tns:guid"/>
<xsd:element
minOccurs = "0"
name = "LogicalName"
nillable = "true"
type = "xsd:string"/>
<xsd:element
minOccurs = "0"
name = "Name"
nillable = "true"
type = "xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Это код, который я использую для извлечения информации о приложении из аннотации.
SchemaAnnotation annotation = element.getAnnotation();
if(annotation!=null){
XmlObject[] ai = annotation.getApplicationInformation();
for(XmlObject obj : ai){
if(obj!=null){
//System.out.println(obj.toString());
obj.getDomNode().getNodeValue();
}
}
}
Но я получаю нулевое значение. Однако obj.toString() возвращает это
<xml-fragment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:request="http://ns1" xmlns:tns="http://ns2">EntityReference</xml-fragment>
Как получить содержимое EntityReference из appinfo? Должен ли я написать собственный обработчик для анализа содержимого строки?
Спасибо