Informationen zu Schema Wrapper-Bibliotheken (Java)
Für das Mappen von XML-Schematypen auf Java-Datentypen wird das folgende Standard-Mapping verwendet:
XML Schema | Java | Remarks |
---|---|---|
xs:string | String | |
xs:boolean | boolean | |
xs:decimal | java.math.BigDecimal | |
xs:float, xs:double | double | |
xs:integer | java.math.BigInteger | |
xs:long | long | |
xs:unsignedLong | java.math.BigInteger | Java hat keine unsignierten Typen. |
xs:int | int | |
xs:unsignedInt | long | Java hat keine unsignierten Typen. |
xs:dateTime, date, time, gYearMonth, gYear, gMonthDay, gDay, gMonth | ||
xs:duration | ||
xs:hexBinary and xs:base64Binary | byte[] | Die Kodierung und Dekoiderung binärer Daten erfolgt automatisch. |
xs:anySimpleType | string |
Alle XML-Schematypen, die nicht in der Liste enthalten sind, sind abgeleitete Typen und werden auf denselben Java-Typ wie der entsprechende Basistyp gemappt.
Generierte Klassen
Für jeden Typ im Schema wird eine Klasse generiert, die ein Member für jedes Attribut und Element des Typs enthält. Die Members erhalten den gleichen Namen wie die Attribute oder Elemente im Originalschema (bei möglichen Konflikten wird eine Zahl angehängt). Für Simple Types werden Zuweisungs- und Konvertierungsoperatoren generiert. Für Simple Types mit Enumeration Facets können die Methoden getEnumerationValue() und setEnumerationValue(int) zusammen mit generierten Konstanten für die einzelnen Enumerationswerte verwendet werden. Des Weiteren können Sie mit Hilfe der Methode StaticInfo() Schemainformationen als einen der folgenden Typen abrufen:
com.altova.xml.meta.SimpleType
com.altova.xml.meta.ComplexType
Anhand von Complex Types generierte Klassen enthalten die Methode SetXsiType(), mit Hilfe derer Sie das xsi:type-Attribut des Typs definieren können. Diese Methode ist nützlich, wenn Sie XML-Instanzelemente anhand eines Derived Type erstellen möchten.
Zusätzlich zu den Klassen für die im XML-Schema deklarierten Typen, wird eine (unten durch "CDoc" identifizierte) Dokument-Klasse generiert. Sie enthält alle möglichen Root-Elemente als Members sowie verschiedene andere Methoden. Nähere Informationen zur Klasse finden Sie unter com.[YourSchema].[Doc].
Anmerkung: Der tatsächliche Klassenname ist vom Namen des .xsd-Schemas abhängig.
Für jedes Member-Attribut oder Elemente eines Schematyps wird eine neue Klasse generiert. Nähere Informationen zu solchen Klassen finden Sie unter:
com.[YourSchema].[YourSchemaType].MemberAttribute
com.[YourSchema].[YourSchemaType
Anmerkung: Der tatsächliche Klassenname ist vom Namen des Schema-Attributs oder -Elements abhängig.
Behandlung von Fehlern
Fehler werden in Form von Ausnahmeereignissen ausgegeben. Im Namespace com.altova sind die folgenden Ausnahmeereignisklassen definiert:
Klasse | Basisklasse | Beschreibung |
SourceInstanceUnvailableException | Exception | Beim Laden einer XML-Instanz ist ein Problem aufgetreten. |
TargetInstanceUnavailableException | Exception | Beim Speichern einer XML-Instanz ist ein Problem aufgetreten. |
Zusätzlich dazu werden die folgenden Java-Ausnahmeereignisse verwendet:
Klasse | Beschreibung |
java.lang.Error | Interner Fehler in der Programmlogik (unabhängig von den Eingabedaten) |
java.lang.Exception | Basisklasse für Runtime-Fehler |
java.lang.IllegalArgumentsException | Es wurde eine Methode mit ungültigen Argumentwerten aufgerufen, oder es gab einen Fehler bei einer Typkonvertierung. |
java.lang.ArithmeticException | Ausnahmeereignis aufgrund eines Fehlers bei der Konvertierung eines numerischen Typs. |
Aufrufen von Schemainformationen
Über die generierte Bibliothek können statische Schemainformationen über die folgenden Klassen abgerufen werden.
com.altova.xml.meta.ComplexType
com.altova.xml.meta.SimpleType
Die Eigenschaften, die eine der Metadatenklassen zurückgeben, geben Null zurück, wenn die entsprechende Eigenschaft nicht existiert.