Hallo,
ich habe ein kleines problem. und zwar müsste ich eine xml datei gegen eine dtd checken. im netz finde ich aber nur beispiele wo in der xml datei die entsprechende dtd im <!DOCTYPE> tag festgelegt wird. Könnte mir jemand ein einfaches Beispiel geben wie ich das anders machen könnte, sodass ich die dtd datei im code festlege gegen die validiert werden soll.
das ist mein derzeitiger code:
hier brauch ich nirgeds festlegen gegen welche dtd validiert werden soll weil das eben schon in der xml datei im doctype drin steht: <!DOCTYPE member SYSTEM "Member.dtd"> ... ich möchte diese zeile jedoch in den xml files entfernen und den pfad zur dtd datei selbst angeben im code.....
grüße
ich habe ein kleines problem. und zwar müsste ich eine xml datei gegen eine dtd checken. im netz finde ich aber nur beispiele wo in der xml datei die entsprechende dtd im <!DOCTYPE> tag festgelegt wird. Könnte mir jemand ein einfaches Beispiel geben wie ich das anders machen könnte, sodass ich die dtd datei im code festlege gegen die validiert werden soll.
das ist mein derzeitiger code:
Java:
public Document parseAndValidateXml(InputStream input) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);
DocumentBuilder builder;
Document document = null;
try {
builder = factory.newDocumentBuilder();
builder.setErrorHandler(new ErrorHandler() {
@Override
public void error(SAXParseException e) throws SAXException {
System.out.println(e.getMessage() + " ERROR");
validation_success = false;
}
@Override
public void fatalError(SAXParseException e) throws SAXException {
System.out.println(e.getMessage() + " FATALERROR");
validation_success = false;
}
@Override
public void warning(SAXParseException e) throws SAXException {
System.out.println(e.getMessage() + " WARNING");
validation_success = false;
}
});
document = builder.parse(input);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return document;
}
hier brauch ich nirgeds festlegen gegen welche dtd validiert werden soll weil das eben schon in der xml datei im doctype drin steht: <!DOCTYPE member SYSTEM "Member.dtd"> ... ich möchte diese zeile jedoch in den xml files entfernen und den pfad zur dtd datei selbst angeben im code.....
grüße