Skip to content

[repository schema] Encoding information specific to a single encoding standard #250

@kleihan

Description

@kleihan

The actual encoding information (general or specific to an element type) is not defined by Orchestra, i.e. it contains attributes and/or elements from the namespace of the respective encoding, which is different from the one used by Orchestra (i.e. “fixr:”).

Encoding information is required with two different types. One type where it is part of the element encodingStandard which has an attribute name defining the name of the standard. The same applies to the element mappedDatatype, which has an attribute standard defining the name of the standard. In all other cases (e.g. as part of an element definition or reference), the encoding information must have an attribute to identify the standard. This requires defining an abstract base type and two different types for the encoding element that extend the base type.

<xs:complexType name="baseEncoding" abstract="true">
  <xs:sequence>
    <xs:element name="annotation" type="fixr:annotation" minOccurs="0"/>
    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>

Note that the attribute processContents="lax" means that the content is not defined by the Orchestra standard. This is intentional as the Orchestra standard only defines a framework to support any number of different encodings, including variations of a single encoding, e.g. flavors of JSON. See Appendix A for usage examples for specific encoding schemas.

<xs:complexType name="unnamedEncoding">
  <xs:complexContent>
    <xs:extension base="fixr:baseEncoding">
      <xs:attribute name="standard" type="fixr:Name_t" use="prohibited"/>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

<xs:complexType name="namedEncoding">
  <xs:complexContent>
    <xs:extension base="fixr:baseEncoding">
      <xs:attribute name="standard" type="fixr:Name_t" use="required"/>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

Metadata

Metadata

Assignees

No one assigned

    Labels

    ENCODINGSupport for binary and other encoding protocols

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions