Anzeige

Fehler bei XML Schema Validierung

Tikonteroga

Erfahrenes Mitglied
#1
Hallo,

ich möchte eine XML-Datei gemäß einem XSD-Schema validieren.

Dabei erhalte ich jedoch folgende Fehlermeldung:

Deklaration des Elements "atfx_file" kann nicht gefunden werden.
Das Element "atfx_file" ist jedoch sowohl im XSD-Schema als auch in der XML-Datei vorhanden.

XML-Datei

Code:
<atfx_file version="atfx_file: V1.1.0" xmlns="http://www.asam.net/ODS/5.1/Schema">
XSD-Schema

Code:
<xsd:schema targetNamespace="http://www.asam.net/ODS/5.1/Schema" 
            xmlns="http://www.asam.net/ODS/5.1/Schema" 
            xmlns:hdt="http://www.asam.net/AIS/2005/HDTypes" 
            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            elementFormDefault="qualified">
Wo liegt hier das Problem ?
 

Tikonteroga

Erfahrenes Mitglied
#3
Hallo,

also ich habe das XML-Schema in meine Anwendung integriert und lade es über den ClassLoader. Ich mache das aus dem Grund, damit ich keine FileNotFoundException behandeln muss bzw. dass diese zur Laufzeit nicht auftreten kann.

Das Schema müsste eigentlich bekannt sein, da ich aus einem Objekt der Klasse Schema ein Objekt der Klasse Validator erzeuge. Hier ist der Code.

Code:
public static void main(String[] args)
	{
		if (args.length == 1)
		{
			try {
				Schema schema = readSchema();
				
				DOMSource source = readSource(args[0]);
			
				Validator validator = schema.newValidator();
								
				validator.setErrorHandler(new ATFXErrorHandler());
				
				validator.validate(source);
			
			} catch (IOException e) {
				System.err.println(e.getMessage());
			} catch (SAXException e) {
				e.printStackTrace();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		else
		{
			System.err.println("Ungültige Parameter");
		}
	}
Code:
public static Schema readSchema()
	{
		Schema schema;
		
		ResourceResolver resourceResolver = new ResourceResolver();
		
		InputStream inputStream = resourceResolver.resolve("Schema.xsd");
		
		StreamSource streamSource = new StreamSource(inputStream);
		
		SchemaFactory schemaFactory = SchemaFactory
				.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
		
		schemaFactory.setResourceResolver(resourceResolver);
		
		try {
			schema = schemaFactory.newSchema(streamSource);
		} catch (SAXException e) {
			throw new IllegalStateException(e);
		}
		
		return schema;
	}
 
Anzeige

Neue Beiträge

Anzeige