## Utilisation simple

Les exemples ci-dessous assument qu'un SDO est créé avec le schéma et l'information de l'instance montrée ci-dessous, en utilisant le Service d'Accès de Données.

L'instance du document ci-dessous décrit un compagnie simple, nommée "MegaCorp", qui contient un seul département, nommé "Advanced Technologies". Ce département contient trois employés. La compagnie "employeeOfTheMonth" référence le second employé, "Jane Doe".

    <?xml version="1.0" encoding="UTF-8" ?>
    <company xmlns="companyNS" name="MegaCorp"
      employeeOfTheMonth="E0003">
      <departments name="Advanced Technologies" location="NY" number="123">
        <employees name="John Jones" SN="E0001"/>
        <employees name="Jane Doe" SN="E0003"/>
        <employees name="Al Smith" SN="E0004" manager="true"/>
      </departments>
    </company>

L'élément racine de ce schéma est une compagnie. La compagnie contient des départements, et chaque département contient des employés. Chaque élément a un nombre d'attributs pour y stocker des valeurs comme le nom, un numéro de série et ainsi de suite. Finalement, la compagnie a également un attribut IDREF qui identifie un des employés comme "employeeOfTheMonth".

    <xsd:schema
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:sdo="commonj.sdo"
      xmlns:sdoxml="commonj.sdo/xml"
      xmlns:company="companyNS"
      targetNamespace="companyNS">
      <xsd:element name="company" type="company:CompanyType"/>
      <xsd:complexType name="CompanyType">
        <xsd:sequence>
          <xsd:element name="departments" type="company:DepartmentType"
            maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string"/>
        <xsd:attribute name="employeeOfTheMonth" type="xsd:IDREF"
          sdoxml:propertyType="company:EmployeeType"/>
      </xsd:complexType>
      <xsd:complexType name="DepartmentType">
        <xsd:sequence>
          <xsd:element name="employees" type="company:EmployeeType"
            maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string"/>
        <xsd:attribute name="location" type="xsd:string"/>
        <xsd:attribute name="number" type="xsd:int"/>
      </xsd:complexType>
      <xsd:complexType name="EmployeeType">
        <xsd:attribute name="name" type="xsd:string"/>
        <xsd:attribute name="SN" type="xsd:ID"/>
        <xsd:attribute name="manager" type="xsd:boolean"/>
      </xsd:complexType>
    </xsd:schema>

Un Service d'Accès de Données XML voit ce schéma comme un SDO. Les attributs comme "name" deviennent des propriétés primaires, les séquences d'employés deviennent une relation de contenu à multiples valeurs, et ainsi de suite. Notez que les relations de contenu sont représentées comme un type complexe contenu dans un autre, où les références non-contenues sont représentées en terme d'ID et d'IDREF, avec un attribut sdoxml:propertyType spécial spécifiant le type de la référence non-contenue.