Basic usage
Basic usage
Basic usage
The examples below assume an SDO created with the
schema and instance information shown below, using the XML Data
Access Service.
The instance document below describes a single
company, called ‘MegaCorp’, which contains a single department,
called ‘Advanced Technologies’. The Advanced Technologies
department contains three employees. The company employeeOfTheMonth
is referencing the second employee, ‘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>
The root element of the schema is a company. The
company contains departments, and each department contains
employees. Each element has a number of attributes to store things
like name, serial number, and so on. Finally, the company also has
an IDREF attribute which identifies one of the employees as the
’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>
The XML Data Access Service maps the schema to an
SDO. Attributes such as “name” become primitive properties, the
sequence of employees becomes a many-valued containment
relationship, and so on. Note that the containment relationships
are expressed as one complex type within another, whereas
non-containment references are expressed in terms of ID and IDREF,
with a special sdoxml:propertyType
attribute specifying the type of the non-containment reference.