# Fehler bei XML Schema Validierung



## Tikonteroga (15. Oktober 2012)

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


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

XSD-Schema


```
<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 ?


----------



## deepthroat (16. Oktober 2012)

Hi.

Hast du denn dem Validator auch beigebracht wo er das Schema finden kann?

Gibt es das irgendwo online?


----------



## Tikonteroga (16. Oktober 2012)

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.


```
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");
		}
	}
```


```
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;
	}
```


----------

