Altova XMLSpy 2024 Enterprise Edition

Das Standardmapping von XML-Schematypen auf C#-Datentypen ist:

 

XML-Schema

C#

Anmerkungen

xs:string

string


xs:boolean

bool


xs:decimal

decimal

xs:decimal hat keine Bereichsbeschränkung und Genauigkeit, wird aus Gründen der Effizienz auf decimal gemappt.

xs:float, xs:double

double


xs:long

long


xs:unsignedLong

ulong


xs:int

int


xs:unsignedInt

uint


xs:dateTime, date, time, gYearMonth, gYear, gMonthDay, gDay, gMonth

Altova.Types.DateTime


xs:duration

Altova.Types.Duration


xs:hexBinary and xs:base64Binary

byte[]

Die Kodierung und Dekodierung von Binärdateien erfolgt automatisch.

xs:anySimpleType

string


 

Alle XML-Schematypen, die nicht in der Liste enthalten sind, sind abgeleitete Typen und werden auf denselben C#-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 und Mixed 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:

 

Altova.Xml.Meta.SimpleType

Altova.Xml.Meta.ComplexType

 

Anhand von Complex Typs 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 [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:

 

[YourSchemaType].MemberAttribute

[YourSchemaType].MemberElement

 

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

ConversionException

Exception

Ausnahmeereignis aufgrund eines Typkonvertierungsfehlers

StringParseException

ConversionException

Ein Wert im lexikalischen Bereich kann nicht in einen Wertebereich umgewandelt werden.

DataSourceUnavailableException

System.Exception

Beim Laden einer XML-Instanz ist ein Problem aufgetreten.

DataTargetUnavailableException

System.Exception

Beim Speichern einer XML-Instanz ist ein Problem aufgetreten.

 

Zusätzlich dazu werden die folgenden .NET-Ausnahmeereignisse verwendet:

 

Klasse

Beschreibung

System.Exception

Basisklasse für Runtime-Fehler

System.ArgumentException

Es wurde eine Methode mit ungültigen Argumentwerten aufgerufen, oder es gab einen Fehler bei einer Typkonvertierung.

System.FormatException

Ein Wert im lexikalischen Bereich kann nicht in einen Wertebereich umgewandelt werden.

System.InvalidCastException

Ein Wert kann nicht in einen anderen Typ umgewandelt werden.

System.OverflowException

Ein Quellwert kann in der Ziel-Domain nicht dargestellt werden.

 

Aufrufen von Schemainformationen

Über die generierte Bibliothek können statische Schemainformationen über die folgenden Klassen abgerufen werden.

 

Altova.Xml.Meta.Attribute

Altova.Xml.Meta.ComplexType

Altova.Xml.Meta.Element

Altova.Xml.Meta.SimpleType

 

Die Eigenschaften, die eine der Metadatenklassen zurückgeben, geben Null zurück, wenn die entsprechende Eigenschaft nicht existiert.

© 2017-2023 Altova GmbH