darksmilie
Erfahrenes Mitglied
Hi,
ich habe ein Problem ein XSD-File einzulesen.
Meine Umstände: Ich programmiere an einem Plugin für eine RCP Anwendung. In diesem Pluginhabe ich ein XML Editor programmiert, welcher bereits das normal XML erfolgreich validieren kann.
Nun möchte ich auch bei bestimmten Files eine XSD-Validierung mit einbauen, wobei ich allerdings Probleme habe das XSD-File zu lesen.
Meine Pluginstruktur:
plugin
->src(Source)
->icons(Folder)
->xsd(Folder)
->META-INF(Folder)
->plugin.xml
->plugin.properties
Meine XSD-Files liegen im "xsd" Ordner und leider bin ich noch nicht dahinter gekommen wie ich auf diese Files zugreifen kann. Den direkten Pfad von meinem Rechner kann ich nicht benutzen, da die Anwendung auch auf anderen Rechnern laufen soll.
Meine XSD-Validierung Wege:
ich habe ein Problem ein XSD-File einzulesen.
Meine Umstände: Ich programmiere an einem Plugin für eine RCP Anwendung. In diesem Pluginhabe ich ein XML Editor programmiert, welcher bereits das normal XML erfolgreich validieren kann.
Nun möchte ich auch bei bestimmten Files eine XSD-Validierung mit einbauen, wobei ich allerdings Probleme habe das XSD-File zu lesen.
Meine Pluginstruktur:
plugin
->src(Source)
->icons(Folder)
->xsd(Folder)
->META-INF(Folder)
->plugin.xml
->plugin.properties
Meine XSD-Files liegen im "xsd" Ordner und leider bin ich noch nicht dahinter gekommen wie ich auf diese Files zugreifen kann. Den direkten Pfad von meinem Rechner kann ich nicht benutzen, da die Anwendung auch auf anderen Rechnern laufen soll.
Meine XSD-Validierung Wege:
Code:
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
InputStream stream = getClass().getResourceAsStream("./xsd/" + elementSet.getName() + ".xsd");
if(stream instanceof FileInputStream) {
Schema schema = factory.newSchema(new StreamSource(stream));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(xmlFile);
}
Code:
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
factory.setAttribute(
"http://java.sun.com/xml/jaxp/properties/schemaLanguage",
"http://www.w3.org/2001/XMLSchema");
factory.setAttribute(
"http://java.sun.com/xml/jaxp/properties/schemaSource",
"xsd/" + xsdName + ".xsd");
DocumentBuilder builder = factory.newDocumentBuilder();
builder.setErrorHandler(errorHandler);
builder.parse(new File(xmlFile));