Fehler beim Erzeugen eines XML-Schema

Andreas

Mitglied
Hallo Zusammen

ich habe ein Problem mit der erzeugung eines XML-Schema per JAXB-Api.

Ich erzeuge z. B. folgendes Schema

[XML]<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="arzt">
<xs:all>
<xs:element minOccurs="0" name="id" type="xs:string"/>
<xs:element minOccurs="0" name="version" type="xs:string"/>
<xs:element minOccurs="0" name="created" type="xs:string"/>
<xs:element minOccurs="0" name="lastchange" type="xs:string"/>
<xs:element minOccurs="0" name="name" type="xs:string"/>
<xs:element minOccurs="0" name="lanr" type="xs:string"/>
</xs:all>
</xs:complexType>
<xs:complexType name="arzt_praxis">
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="arzt" type="arzt"/>
<xs:element maxOccurs="1" minOccurs="0" name="praxis" type="praxis"/>
</xs:all>
</xs:complexType>
<xs:complexType name="praxis">
<xs:all>
<xs:element minOccurs="0" name="id" type="xs:string"/>
<xs:element minOccurs="0" name="version" type="xs:string"/>
<xs:element minOccurs="0" name="created" type="xs:string"/>
<xs:element minOccurs="0" name="lastchange" type="xs:string"/>
<xs:element minOccurs="0" name="adresse" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:schema>[/XML]

Vorgehalten wird das Ganze in einem
Code:
org.w3c.dom.Document
. Wenn ich jetzt durch den Aufruf
Code:
schema = factory.newSchema(new DOMSource(doc, "mem:\\\\memory.schema"));
ein Schemaobjekt erzeugen will, kriege ich folgende Fehlermeldung.

org.xml.sax.SAXParseException: s4s-elt-invalid-content.1: The content of 'arzt' is invalid. Element 'xs:all' is invalid, misplaced, or occurs too often.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:2541)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:2528)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.reportSchemaError(XSDAbstractTraverser.java:706)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.handleComplexTypeError(XSDComplexTypeTraverser.java:1119)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(XSDComplexTypeTraverser.java:285)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(XSDComplexTypeTraverser.java:160)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(XSDHandler.java:1255)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:579)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:552)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:519)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:485)
at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:210)
at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:594)
at de.kvwl.rust.resourcetranformer.xml.XMLSchemaMetadataRenderer.createSchema(XMLSchemaMetadataRenderer.java:161)
at de.kvwl.rust.resourcetranformer.xml.XMLSchemaMetadataRenderer.main(XMLSchemaMetadataRenderer.java:319)


Soweit alles noch nicht wild. Das Lustige ist jetzt aber noch, dass der Validator vom W3C mir bescheinigt, dass das Schema einwandfrei und ohne Fehler ist. Weis einer woran es noch liegen könnte???
 
N

nillehammer

Gast
Wenn man der Erklärung von w3c-Schools zum xs:all glauben kann (XML Schema all Element), hast Du Widersprüche in Deinem Schema. Mit xs:all ohne Attribute sagst Du nämlich, dass alle Elemente genau einmal vorkommen müssen. Mit dem minOccurs=0 sagst Du bei den Elementen dann: "darf doch weggelassen werden". Vielleicht ist der w3c-Validator da etwas toleranter als der Xercses.

Im Prinzip müsstest Du das "minOccurs=0" in das xs:all reinschreiben und könntest es Dir bei den einzelnen xs:elements dan schenken.

P.S. das maxOccurs in den Elementen ist übrigens überflüssig. Das wird schon durch das xs:all ausgedrückt und kann dort auch nicht geändert werden.
 
N

nillehammer

Gast
Hier nochmal der Auszug aus der Schemadatei für XML-Schemas:
[XML]
<xs:complexType name="all" mixed="false">
<xs:annotation>
<xs:documentation>Only elements allowed inside</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="xs:explicitGroup">
<xs:group ref="xs:allModel" />
<xs:attribute name="minOccurs" use="optional" default="1">
<xs:simpleType>
<xs:restriction base="xs:nonNegativeInteger">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="maxOccurs" use="optional" default="1">
<xs:simpleType>
<xs:restriction base="xs:allNNI">
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="all" id="all" type="xs:all">
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-all" />
</xs:annotation>
</xs:element>
[/XML]
Laut dem stimmt die Beschreibung auf w3schools. Die Dokumentation auf w3.org ist da leider genau so wie deren Parser etwas schwammiger. Dumm, weil das ja eigentlich die Referenz sein sollte...
 

Andreas

Mitglied
Hi

leider war es das nicht. Folgendes Schema (Ausschnitt) produziert den selben Fehler:

[XML]<?xml version="1.0" encoding="UTF-8" standalone="no"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="arzt">
<xs:all minOccurs="0">
<xs:element name="id" type="xs:string"/>
<xs:element name="version" type="xs:string"/>
<xs:element name="created" type="xs:string"/>
<xs:element name="lastchange" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="lanr" type="xs:string"/>
</xs:all>
</xs:complexType>[/XML]

Ich les aus der w3schools beschreibung aber auch nicht unbedingt raus, dass man bei den Elementen kein minOccurs angeben darf. Vor allem muss ich da später auch unterschiedliche Werte verwenden. Das ginge mit xs:all ja dann gar nicht.

Wenn ich sequence oder choice nehme habe ich übrigens auch den gleichen Fehler.
 
Zuletzt bearbeitet:

Andreas

Mitglied
Habs rausbekommen.

man muss die elemente unter Angabe des Namespaces erzeugen z.B.
Code:
doc.createElementNS(NS, "xs:complexType");

Das Schema-Element muss dann noch den Namespace bekommen sonst findet der die primitiven Datentypen nich:

Java:
final Element root = doc.createElementNS(NS, "xs:schema");
root.setAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, XMLConstants.XMLNS_ATTRIBUTE + ":xs", XMLConstants.W3C_XML_SCHEMA_NS_URI);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A XML-Fehler beim Prefix von xmlns XML & JSON 2
J Fehler beim laden einer .xml XML & JSON 3
C Zeile herausfinden in der ein Fehler beim Einlesen entsteht XML & JSON 3
T Fehler: Hauptklasse com.sun.tools.internal.xjc.XJCFacade konnte nicht gefunden oder geladen werden XML & JSON 6
T XSD/XML Fehler im Namespace? XML & JSON 1
S Apache Ant - Fehler: Hauptklasse konnte nicht gefunden oder geladen werde XML & JSON 1
B JAXB-Fehler bei REST-Api XML & JSON 0
S JDOM XML Datei darstellen Fehler! XML & JSON 2
R XML eingelesen und wieder geschrieben... Fehler XML & JSON 7
I Fehler bei XSL-FO und for-each XML & JSON 2
G XML Parser Fehler, zwei gleiche kind-Elemente XML & JSON 7
E Schweigsamer Fehler XML & JSON 3
G XML Fehler! Warum? XML & JSON 3
DaRolla UTF-8 Castor Unmarshal Fehler? XML & JSON 2
T XML prüfen mit XSD => Alle Fehler auflisten XML & JSON 7
K XMLBuddy fehler XML & JSON 12
W Ungleiches Escaping beim Marshalling XML & JSON 8
S Hilfe beim RDF-Graphen XML & JSON 0
R Beim Serialisieren fehlt die letzte Zeile XML & JSON 5
N Probleme bei der Formatierung beim Einfügen und löschen über DOM XML & JSON 7
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
L Jackson JSON: Probleme beim einlesen XML & JSON 1
K Beim Parsen einer XML-Datei Connection timed out XML & JSON 4
G Langsam beim SAX-Parsen - woran liegts? XML & JSON 2
B Validierung nur beim einlesen oder auch beim schreiben? XML & JSON 4
D JAXBException beim Marshaller XML & JSON 4
M Read / write Problem beim ByteStrom XML & JSON 2
whitenexx Problem beim parsen von Facebook XML XML & JSON 3
J Dateinamen beim Start auslesen XML & JSON 8
F Hilfe beim bearbeiten von XML elemente XML & JSON 3
N XStream ConversionException beim Deserialisieren in (Hibernate)Objekt XML & JSON 6
hdi Probleme beim Erstellen einer XML XML & JSON 7
F Probleme beim html parsen mit tagsoup XML & JSON 4
M Probleme beim Parsen eines gefilterten XML-Dokuments XML & JSON 6
G Problem beim schreiben von XML in eine File XML & JSON 2
L Reihenfolge beim xml Datei parsen einhalten? XML & JSON 8
H JAXB Probleme beim Unmarshalling XML & JSON 3
sylo Beim Erzeugen einer XML Datei auch die XML Struktur erzeugen? XML & JSON 11
B Problem beim löschen von ChildNodes aus einem XML-DOM XML & JSON 3
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
N Hilfe beim Einstieg in EMF XML & JSON 6
D Das Programm hängt etwa 5 Sekunden beim Aufruf der parse-Methode XML & JSON 6
D Tabs/Einrückungen der XML-Elemente gehen beim Schreiben verloren XML & JSON 5
T Problem beim Parsen von Attribut xmlns="urn:com:test&qu XML & JSON 6
G XML Tag beim Einlesen manipulieren XML & JSON 2
J Problem beim XML-Lesen XML & JSON 2
S Probleme beim erstellen einer Jar XML & JSON 12
N jdom problem beim lesen von child elementen XML & JSON 5
P NullPointerException beim Auslesen XML & JSON 8
M Performance beim Binding XML & JSON 2
C SAX Probleme beim lesen XML & JSON 4
D Probleme beim SAX parsing XML & JSON 4
E XOM setzen von XML-Schema declaration beim erzeugen XML-File XML & JSON 2
byte Probleme beim Parsen von XHTML-Datei XML & JSON 4
G DOCTYPE Problem beim Transformer/TransformerFactory etc. XML & JSON 13
P OutOfMemoryError beim Einlesen einer XML-Datei XML & JSON 7
P Problem beim erstellen eines neuen Elements (JDOM) XML & JSON 5
S JDOM-Kein indent beim XMLOutputter XML & JSON 4
V Datenverlust nach sortieren (nur beim serialisieren) XML & JSON 4
S Problem beim Erstellen eines pdfs XML & JSON 3
R Problem beim Auslesen von Attributen XML & JSON 4
R JAVA und DOM, probleme beim einfügen von elementen ?????? XML & JSON 6
W Erzeugen einer openapi spec via swagger XML & JSON 1
W Erzeugen einer Handlerklasse zum Abfangen von SOAP-Requests XML & JSON 13
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
A GUI um auf XSD Basis (valide) XML Daten zu erzeugen XML & JSON 3
C XML erzeugen Tipps und Tricks XML & JSON 7
M JAXB versucht abstrakte Klasse zu erzeugen XML & JSON 7
J XML Parser anhand xsd erzeugen XML & JSON 2
H PDF erzeugen mit FOP(fo fehlerhaft) XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
R XSD aus Java Klassen erzeugen?? XML & JSON 2
S Aus XML-File eine Baumstruktur erzeugen XML & JSON 5
P cxf: WSDL dynamisch erzeugen (zur Laufzeit) XML & JSON 7
F XML erzeugen aus JTree und wieder einlesen... XML & JSON 6
N Teilbaum aus DOM-Baum erzeugen XML & JSON 5
S Java - Klassen erzeugen aus xsd bzw. wsdl XML & JSON 3
J Objektstruktur aus XML-Datei erzeugen XML & JSON 21
T Einzug bei XSLTransformator erzeugen XML & JSON 3
P XSD Schema: Konstanten mit "fixed" erzeugen geht nicht ??? XML & JSON 3
G Welche Klassen zum erzeugen/auslesen eines XML Files verwend XML & JSON 9
B jdom document aus string erzeugen? XML & JSON 1
H PDFs erzeugen mit Apache FOP XML & JSON 3
D XML Datei mit DOM erzeugen XML & JSON 6
G JAXB Objekte erzeugen XML & JSON 3
B DTD aus Java erzeugen XML & JSON 2
M PDF erzeugen aus Stringarray XML & JSON 1
G XML Dokument mit DOM erzeugen XML & JSON 9
S svg erzeugen XML & JSON 2
B org.w3c.dom.Node erzeugen XML & JSON 2
B XML-Document mit Java erzeugen und zuruecksenden XML & JSON 1
S Menüeinträge aus XML erzeugen XML & JSON 21
K xml Datei mit JDOM erzeugen, Problem Namespaces XML & JSON 1

Ähnliche Java Themen

Neue Themen


Oben