Skip to main content

Module xsd_schema

Module xsd_schema 

Source
Expand description

W3C XML Schema (XSD) → DDS-XTypes-Bridge (XTypes 1.3 §7.3.3).

Spec OMG XTypes 1.3 §7.3.3 erlaubt XSD als alternative Type- Representation neben IDL/XML/TypeObject. Dieses Modul mappt eine Untermenge von W3C XSD 1.0/1.1 auf das interne TypeLibrary- Datenmodell aus crate::xtypes_def; via crate::typeobject_bridge wird daraus ein zerodds_types::TypeObject berechnet.

§Mapping (XTypes 1.3 §7.3.3 Tab.6.x)

XSD                                    | DDS-Type
-------------------------------------- | -------------------------
<xsd:schema>                           | TypeLibrary (Top-Level)
<xsd:complexType name=X>               | <struct name=X>
  <xsd:sequence>                       |
    <xsd:element name=f type=t/>       | <member name=f type=t/>
<xsd:simpleType name=E>                | <enum name=E>
  <xsd:restriction base="xsd:string">  |
    <xsd:enumeration value=A/>         | <enumerator name=A/>
minOccurs=0 (Element)                  | optional=true
maxOccurs=unbounded                    | sequence
maxOccurs=N (N>1)                      | bounded sequence

§Built-In Type Mapping

xsd:boolean | xsd:byte | xsd:short | xsd:int     | xsd:long
-> boolean    octet      short       long          longlong

xsd:unsignedByte | xsd:unsignedShort | xsd:unsignedInt | xsd:unsignedLong
-> octet           ushort              ulong             ulonglong

xsd:float | xsd:double  | xsd:string | xsd:base64Binary
-> float    double        string       sequence<octet>

§Bewusst nicht im Crate

  • Voller XSD-1.1-Validator (key/keyref, assertions).
  • <xsd:choice> als Union-Equivalent (Spec sieht das nicht normativ vor; folgt evtl. Phase 2).
  • XSD xsd:include/xsd:import (Multi-File-Schemas).
  • Mixed Content / Attribute-as-Member.

Functions§

parse_xsd_schema
Parst ein XSD-Schema-Dokument und liefert eine TypeLibrary.