Есть xml и к нему xsd документы:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tn="asdf" targetNamespace="asdf">
<xsd:element name="universe">
<xsd:complexType>
<xsd:sequence>
<xsd:element name = "location" type="tn:LocationType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="LocationType">
<xsd:sequence>
<xsd:element name = "hero" type="tn:HeroType"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string"/>
</xsd:complexType>
<ts:universe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="asdf input.xsd"
xmlns:ts="asdf">
<location name="Skyrim">
<hero name="Alduinn" status="enemy"/>
</location>
</ts:universe>
пытаюсь пока просто получить значения из xml, но печатаются просто пустые строки
public class DOMController {
private final String xmlFileName;
public DOMController(String xmlFileName) {
this.xmlFileName = xmlFileName;
}
public Universe parse(){
DocumentBuilderFactory dbf = DocumentBuilderFactory.newDefaultInstance();
DocumentBuilder db;
Document document = null;
try {
dbf.newDocumentBuilder();
dbf.setNamespaceAware(true);
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) { throw new RuntimeException(e); }
try {
document = db.parse(xmlFileName);
}catch (SAXException | IOException e){ e.printStackTrace(); }
if (document == null) throw new RuntimeException();
NodeList node = document.getElementsByTagName("location");
System.out.println(node.getLength());
for (int i = 0; i < node.getLength(); i++) {
Node node1 = node.item(i);
System.out.println(node1.getTextContent());
}
return null;
}
}
Что я неправильно делаю? Validate внутри идеи не показывает никаких ошибок в самом XML