Python-XSD-API
Das xsd-Modul bietet eine Python-Schnittstelle für die C++-Implementierung für die XML-Schema-Datenmodellebene. Über diese Python-Schnittstelle kann der Benutzer durch die XML-Schemadokumentstruktur und das Post Schema Validation Infoset (PSVI) navigieren und Informationen daraus aufrufen.
Verfügbare Typen
Es sehen die folgenden Typen zur Verfügung. Eine nähere Beschreibung dazu finden Sie in den Unterabschnitten dieses Abschnitts.
Die Klasse Annotation repräsentiert menschen- und maschinenlesbare Annotationen von Schemakomponenten.
Eine Any-Klasse dient zur Validierung von Informationseinheiten für Attribute und Elemente, abhängig vom Namespace-Namen und optional auch abhängig von ihren lokalen Namen.
Eine AnyAttribute-Klasse dient zur Validierung von Informationseinheiten für Attribute, abhängig vom Namespace-Namen und optional auch abhängig von ihren lokalen Namen.
Die Klasse Assertion schränkt das Vorhandensein und die Werte miteinander in Zusammenhang stehender Elemente und Attribute ein.
Klasse xsd.AttributeDeclaration
Eine AttributeDeclaration Klasse dient zu folgenden Zwecken: (i) lokale Validierung der Werte von Informationseinheiten für Attribute anhand einer simpleType-Definition und (ii) Definieren von Standardwerten oder festgelegten Werten für Informationseinheiten für Attribute.
Klasse xsd.AttributeGroupDefinition
Eine AttributeGroupDefinition-Klasse wird nicht zur eigentlichen Validierung verwendet, erzeugt aber zur Gänze oder teilweise eine oder mehrere complexType-Definitionen. Attributgruppen werden nach ihrem name und target namespace identifiziert und müssen innerhalb eines XSD-Schemas eindeutig sein.
Die Klasse AttributePSVI enthält PSVI-Informationen zu einem Attribut.
Die Klasse AttributeUse repräsentiert menschen- und maschinenlesbare Annotationen von Schemakomponenten.
Die Klasse Block bildet Teil der Definition einer Elementdeklaration im Schema.
Klasse xsd.ComplexTypeDefinition
Eine ComplexTypeDefinition-Klasse definiert die Eigenschaften eines complexType mittels ihrer Instanzattribute.
Eine ContentType-Klasse definiert den Inhaltstyp des Elements.
Die Klasse Defined repräsentiert ein Schlüsselwortmitglied der Wertegruppe, die für das disallowed_names Attribut von NamespaceConstraint zulässig ist.
Eine DerivationMethod-Klasse enthält Informationen über die Ableitungsmethode.
Die Klasse ENTITY repräsentiert den ENTITY-Attributtyp von XML.
Die Klasse ElementDeclaration dient zu folgenden Zwecken: (i) lokale Validierung der Werte von Informationseinheiten für Elemente anhand einer Typdefinition; (ii) Definieren von Standardwerten oder festgelegten Werten für Informationseinheiten für Elemente; (iii) Definieren von Eindeutigkeit und von Beziehungen zur Referenzeinschränkung für die Werte miteinander in Zusammenhang stehender Elemente und Attribute; (iv) Festlegen der Ersetzbarkeit von Elemente über den Mechanismus von Elementersetzungsgruppen.
Wenn die Schemagültigkeit einer Informationseinheit für Elemente überprüft wurde, werden die PSVI-Eigenschaften in Instanzattributen der Klasse ElementPSVI zurückgegeben.
Ein complexType mit einer leeren Definition für Final kann als Basistypdefinition für andere durch Erweiterung oder Einschränkung abgeleitete Typen verwendet werden; die expliziten Werte extension und restriction verhindern weitere Ableitungen durch Erweiterung bzw. Einschränkung. Wenn alle Werte definiert sind, gilt der complexType als final, da keine weiteren Ableitungen möglich sind.
Die Klasse ID repräsentiert den ID-Attributtyp von XML.
Die Klasse IDREF repräsentiert eine Sequenz von XML-ID-Attributtypen.
Die Klasse ID_IDREF_binding repräsentiert ein Binding zwischen ID und IDREF.
Die Klasse ID_IDREF_table repräsentiert eine Gruppe von ID-IDREF mappings.
Klasse xsd.IdentityConstraintDefinition
Die Klasse IdentityConstraintDefinition dient zur Definition der Eindeutigkeit und enthält Referenzeinschränkungen hinsichtlich des Inhalts mehrerer Elemente und Attribute.
Die Klasse Instance repräsentiert das Instanzdokument.
Die Klasse ModelGroup definiert eine sequenzielle (sequence), trennende (choice) oder verbindende (all) Interpretation ihres Attributs.
Klasse xsd.ModelGroupDefinition
Eine Klasse ModelGroupDefinition wird durch ihren name und target namespace identifiziert. Elementgruppen (Model Groups) müssen innerhalb eines XSD-Schemas eindeutig sein. Elementgruppendefinitionen werden bei der Validierung nicht berücksichtigt, doch kann der term eines Particle zur Gänze oder zum Teil einer Elementgruppe ModelGroup aus einer ModelGroupDefinition entsprechen. Das Instanzattribut model_group ist die Elementgruppe ModelGroup, für die ModelGroupDefinition einen Namen liefert.
Die Klasse NCName repräsentiert einen NCName (non-colonized name).
Die Klasse NMTOKEN repräsentiert den NMTOKEN Attributtyp aus XML.
Die Klasse NOTATION repräsentiert den NOTATION-Attributtyp aus XML.
Die Klasse Name repräsentiert einen XML-Namen.
Die Klasse NamespaceBinding ermöglicht die Bindung eines namespace an ein prefix.
Klasse xsd.NamespaceConstraint
Die Klasse NamespaceConstraint dient zur Validierung von Informationseinheiten für Attribute und Elemente, die entsprechend dem angegebenen Constraint ausgewählt wurden.
Klasse xsd.NotationDeclaration
Eine Klasse NotationDeclaration definiert einen gültigen Element- oder Attributwert. Notationsdeklaration werden bei der Validierung nicht berücksichtigt. Sie werden allerdings beim Validieren von Strings als Mitglieder des simpleType NOTATION referenziert. Eine Informationseinheit für Attribute oder Elemente, deren verwendete Typdefinition oder Validierungstyp vom simpleType NOTATION abgeleitet ist, ist nur dann gültig, wenn ihr Wert sich in den Enumerationen eines solchen simpleType befindet. Folglich muss ein solcher Wert der name einer Notationsdeklaration sein.
Ein OpenContent Eigentschaftseintrag. Optional, wenn variety "element-only" oder "mixed" ist, andernfalls darf er nicht vorhanden sein.
Die Klasse PSVI dient zur Prüfung der Schemagültigkeit von Elementen und Attributen.
Eine Particle-Klasse enthält die Komponenten. Diese Komponenten sind entweder direkt oder indirekt enthalten. Direkt enthalten ist die Komponente, die der Wert ihres term Attributs ist. Indirekt enthalten sind die Partikel, Gruppen, Wildcards und Elementdeklarationen, die im Wert ihrer term Eigenschaft enthalten sind.
Die Klasse QName repräsentiert einen qualifizierten XML-Namen.
Die Klasse schema enthält eine Sammlung von Schemakomponenten, z.B. Typdefinitionen und Elementdeklarationen, die einen gemeinsamen Ziel-Namespace haben.
Die Klasse Scope repräsentiert einen Scope-Eigenschaftseintrag. Obligatorisch.
Die Klasse Sibling repräsentiert ein Keyword Member der für das disallowed_names Attribut von NamespaceConstraint zulässigen Wertegruppe.
Klasse xsd.SimpleTypeDefinition
Die Klasse SimpleTypeDefinition repräsentiert durch ihr name- und target namespace-Attribut identifizierte simpleTypes.
Die Klasse TypeAlternative wird von einer ElementDeclaration zur Definition einer Bedingung (test) verwendet, unter der ein bestimmter Typ (type_definition) als geltende Typdefinition für Informationseinheiten für Elemente, für die diese ElementDeclaration gilt, verwendet wird. Jede ElementDeclaration kann in ihrer Typtabelle (TypeTable) mehrere Typalternativen haben.
Die Typdefinition, anhand welcher eine Informationseinheit für Elemente validiert wird (die geltende Typdefinition) kann eine andere sein, als die deklarierte Typdefinition. Aufgrund der TypeTable-Eigenschaft einer ElementDeclaration, die die Zuweisung von Typen auf Basis von Bedingungen regelt, und aufgrund des xsi:type-Attributs einer Informationseinheit für Elemente können die geltende Typdefinition und die deklarierte Typdefinition unterschiedlich sein.
Die Klasse Unbounded ist ein String-Wert. Sie repräsentiert den oberen Wert der Eigenschaft maxOccurs.
Die Klasse ValueConstraint repräsentiert eine Eigenschaft der Klasse AttributeUse.
Um eine Assertion zu überprüfen, wird eine Instanz des XPath 2.0-Datenmodells erzeugt, in der die überprüfte Informationseinheit für Elemente der Root Node (der oberste Node) ist und den Elementen und Attributen Typen und Werte gemäß den Regeln des XPath 2.0-Datenmodells zugewiesen werden. Bei Auswertung anhand dieser Datenmodelltestinstanz ergibt die Auswertung von test entweder True oder False.
Spezielle vordefinierte Datentypobjekte
anyAtomicType
anySimpleType
anyURI
language
normalizedString
string
token
boolean
byte
decimal
double
float
int
integer
long
negativeInteger
nonNegativeInteger
nonPositiveInteger
positiveInteger
short
unsignedByte
unsignedInt
unsignedLong
unsignedShort
dayTimeDuration
duration
yearMonthDuration
Objekte vom Datentyp Time und Number
date
dateTime
dateTimeStamp
gDay
gMonth
gYear
gYearMonth
time
base64Binary
hexBinary
assertionsFacet
enumerationFacet
fractionDigitsFacet
lengthFacet
maxExclusiveFacet
maxInclusiveFacet
maxLengthFacet
minExclusiveFacet
minInclusiveFacet
minLengthFacet
pattern
totalDigitsFacet