# SDO DAS XML &Functions;

&reftitle.classes;

The XML DAS provides two main classes. The first is SDO_DAS_XML which is the main class used to fetch the data from the XML source and used to write the data back. The second is the SDO_DAS_XML_Document class, which represents the data in the XML document.

There are also some exception classes which can be thrown if errors are found when looking for or parsing the xsd or xml files.

### `SDO_DAS_XML`

This is the main class of the XML DAS, which is used fetch the data from the xml source and also used to write the data back. Other than the methods to load and save xml files,

&reftitle.methods;

- create This is a static method available in the SDO_DAS_XML class. Used to construct an SDO_DAS_XML object.

- addTypes Works in much the same way as `create` but used to add the contents of a second or subsequent schema file to an XML DAS that has already been created.

- createDataObject Can be used to construct an SDO data object of a given type.

- createDocument Can be used to construct an XML Document object from scratch.

- loadFile Loads the xml instance document from a file. This file can be at local file system or it can be on a remote host.

- loadString same as the above method. Loads the xml instance which is available as string.

- saveFile save SDO_DAS_XML_Document object as a xml file.

- saveString save SDO_DAS_XML_Document object as a xml string.

### `SDO_DAS_XML_Document`

This class can be used to get to the name and namespace of the document element, and to get to the root data object of the document. Lastly, it can also be used to set the XML version and encoding of a document on output.

&reftitle.methods;

- getRootDataObject gets the root DataObject.

- getRootElementName gets the root DataObject's name.

- getRootElementURI gets the root DataObject's URI.

- setEncoding sets the encoding string with the given value.

- setXMLDeclaraion to set/unset the xml declaration.

- setXMLVersion sets the xml version with the given value.

### `SDO_DAS_XML_ParserException`

Is a subclass of `SDO_Exception`. Thrown for any parser errors while loading the xsd/xml file.

### `SDO_DAS_XML_FileException`

Is a subclass of `SDO_Exception`. Thrown by any of the methods that load data from a file, when the file cannot be found.

## Limitations compared with SDO 2.0 specification

The SDO 2.0 specification defines the mapping between XML types and SDO types. With Java SDO, this mapping is implemented by the XMLHelper. With SDO for PHP, this mapping is implemented by the XML Data Access Service. The XML DAS implements the mapping described in the SDO 2.0 specification with some restrictions. A detailed list is of the limitations is:

## XML Simple Types

1. Simple Type with sdoJava:instanceClass - no PHP equivalent provided.

2. Simple Type with sdoJava:extendedInstanceClass - no PHP equivalent provided.

3. Simple Type with list of itemType.

4. Simple Type with union.

## XML Complex Types

1. Complex Type with sdo:aliasName - no PHP support for SDO Type aliases.

## XSD Attribute

1. Attribute with sdo:aliasName - no PHP support for SDO property aliases.

2. Attribute with default value - no PHP support for SDO property defaults.

3. Attribute with fixed value - no PHP support for SDO read-only properties or default values.

4. Attribute referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="...".

5. Attribute with bi-directional property to a DataObject with sdo:oppositeProperty and sdo:propertyType - no PHP support for SDO opposite.

## XSD Elements

1. Element with sdo:aliasName - no PHP support for SDO property aliases.

2. Element with substitution group.

## XSD Elements with Simple Type

1. Element of SimpleType with default - no PHP support for SDO defaults

2. Element of SimpleType with fixed value - no PHP support for SDO read-only properties or default values.

3. Element of SimpleType with sdo:string - no support for sdo:string="true".

4. Element referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="..."

5. Element with bi-directional reference to a DataObject with sdo:oppositeProperty and sdo:propertyType - no PHP support for SDO opposite.

&reference.sdo-das-xml.entities.sdo-das-xml; &reference.sdo-das-xml.entities.sdo-das-xml-document;