company logo

XML schema attribute extensions

ODABA schema definitions require some ODABA specific schema extensions. Schema extensions are available at www.odaba.com/OXMLExtensions.xsd . Using this schema extensions allow providing complete schema definitions via an XML schema.

A summary of ODABA XML schema extensions is given in the definition below.

Definition: 

  

<?xml version="1.0" encoding="ISO-8859-1"?>

<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:attribute name="alignment" type="xs:integer"/>

<xs:attribute name="assignment" type="xs:string"/>

<xs:attribute name="baseCollection" type="xs:string"/>

<xs:attribute name="complete" type="xs:boolean" default="false"/>

<xs:attribute name="dataType" type="xs:string"/>

<xs:attribute name="deleteEmpty" type="xs:boolean" default="false"/>

<xs:attribute name="dependent" type="xs:boolean" default="false"/>

<xs:attribute name="descending" type="xs:boolean" default="false"/>

<xs:attribute name="dimension" type="xs:integer"/>

<xs:attribute name="distinct" type="xs:boolean" default="false"/>

<xs:attribute name="elementType">

  <xs:simpleType>

    <xs:restriction base="xs:string">

      <xs:enumeration value="BaseType"/>

      <xs:enumeration value="Attribute"/>

      <xs:enumeration value="Reference"/>

      <xs:enumeration value="Relationship"/>

      <xs:enumeration value="Key"/>

    </xs:restriction>

  </xs:simpleType>

</xs:attribute>

<xs:attribute name="guid" type="xs:boolean" default="false"/>

<xs:attribute name="ignoreCase" type="xs:boolean" default="false"/>

<xs:attribute name="intersect" type="xs:boolean" default="false"/>

<xs:attribute name="inverse" type="xs:string"/>

<xs:attribute name="keyComponents" type="xs:string"/>  <!-- one or more key components separated by comma, e.g. "name(descending),first_name" -->

<xs:attribute name="identKey" type="xs:boolean" default="false"/>

<xs:attribute name="multipleKey" type="xs:boolean" default="false"/>

<xs:attribute name="noCreate" type="xs:boolean" default="false"/>

<xs:attribute name="notEmpty" type="xs:boolean" default="false"/>

<xs:attribute name="orderKeys" type="xs:string"/>  <!-- one or more order keys separated by comma, e.g. "key_name1(unique),keyname2" -->

<xs:attribute name="owner" type="xs:boolean" default="false"/>

<xs:attribute name="precision" type="xs:integer"/>

<xs:attribute name="privilege">

  <xs:simpleType>

    <xs:restriction base="xs:string">

      <xs:enumeration value="private"/>

      <xs:enumeration value="public"/>

      <xs:enumeration value="protected"/>

    </xs:restriction>

  </xs:simpleType>

</xs:attribute>

<xs:attribute name="referenceLevel">

  <xs:simpleType>

    <xs:restriction base="xs:string">

      <xs:enumeration value="byValue"/>

      <xs:enumeration value="byReference"/>

      <xs:enumeration value="byPointer"/>

      <xs:enumeration value="byPointerPointer"/>

      <xs:enumeration value="generic"/>

    </xs:restriction>

  </xs:simpleType>

</xs:attribute>

<xs:attribute name="secondary" type="xs:boolean" default="false"/>

<xs:attribute name="size" type="xs:integer"/>

<xs:attribute name="static" type="xs:boolean" default="false"/>

<xs:attribute name="subSet" type="xs:string"/>

<xs:attribute name="superSet" type="xs:string"/>

<xs:attribute name="transient" type="xs:boolean" default="false"/>

<xs:attribute name="update" type="xs:boolean" default="false"/>

<xs:attribute name="version" type="xs:integer"/>

<xs:attribute name="virtual" type="xs:boolean" default="false"/>

<xs:attribute name="weakTyped" type="xs:boolean" default="false"/>

</xs:schema>