Extensión de tipo complejo

El XOM tiene en cuenta las extensiones de tipo complejo.

Ampliación de un tipo complejo añadiendo un atributo

En este ejemplo, el tipo complejo book se ha ampliado a computer-book añadiendo un nuevo atributo denominado language. El ejemplo incluye una regla llamada processComputerBook que coincide con "Java™" con el título de un objeto ComputerBook .

A continuación se muestra el esquema:

<complexType name= "book" >
 <sequence>
   <element name="ident" type="string"/>
   <element name="title" type="string" />
 </sequence>
</complexType>

<complexType name="computer-book">
 <complexContent>
  <extension base="book">
    <sequence>
     <element name="language" type="string"/>
    </sequence>
  </extension>
 </complexContent>
</complexType>

A continuación se muestra un extracto de un documento XML:

<computer-book>
  <ident>12345</ident>
  <title>Decision Server Reference Manual</title>
   <language>Java IRL</language>
</computer-book>

A continuación se muestra la representación XOM:

class Book extends IlrXmlObject
{
   …
     String ident;
     String title;
   …
}

class ComputerBook extends Book
{
  String language;
   …
}

Y aquí está la regla:

rule processComputerBook
{
   when {
        ComputerBook ( language equals "Java" );
   }
   then {
      …
   }
}