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.