Mam dwa pliki xsd do sprawdzania poprawności xml. Ale problem polega na tym, że mój kod przyjmuje tylko jeden xsd. Jak korzystać z innych xsd w poniższym kodzie? Nie mam pojęcia, gdzie powinienem umieścić/wywołać drugi plik xsd.Sprawdzanie poprawności XML - używanie wielu xsd z
private void validate(File xmlF,File xsd1,File xsd2) {
try {
url = new URL(xsd.toURI().toString());// xsd1
} catch (MalformedURLException e) {
e.printStackTrace();
}
source = new StreamSource(xml); // xml
try {
System.out.println(url);
schema = schemaFactory.newSchema(url);
} catch (SAXException e) {
e.printStackTrace();
}
validator = schema.newValidator();
System.out.println(xml);
try {
validator.validate(source);
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Czy próbowałeś już ['newSchema (Source [])'] (http://download.oracle.com/javase/1.5.0/docs/api/javax/xml/validation/SchemaFactory.html#newSchema (javax.xml .transform.Source []))? –
Tak. Próbowałem w ten sposób. To nie działa, prawdopodobnie dlatego, że Source [] jest używane dla xml. Nie możemy typować danych XSD do źródła. – freepublicview
Podobnie jak w przypadku poprzedniego pytania dotyczącego tego projektu sprawdzania poprawności XML, chciałbym wskazać [SSCCE] (http://sscce.org/). Twój fragment kodu jest daleki od ukończenia, ponieważ definiujesz zmienne spoza tej metody itp. Zwrócenie uwagi na sposób, w jaki zadajesz swoje pytanie, pomaga nam pomagać. – Wivani