o2xdl-schema Documentation

Table of Contents

top

Schema Document Properties

Target Namespacehttp://www.o2xdl.org/3.0/o2xdl
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.
Schema Composition
  • This schema imports schema(s) from the following namespace(s):
    • http://www.w3.org/XML/1998/namespace (at http://www.w3.org/2001/xml.xsd)
Documentation location: http://www.o2xdl.org/3.0/o2xdl-schema.xsd

Copyright (c)2002-20019: R.Antonini, M.Sillano, A.Simonetta

Declared Namespaces

PrefixNamespace
Default namespacehttp://www.w3.org/2001/XMLSchema
xmlhttp://www.w3.org/XML/1998/namespace
o2xhttp://www.o2xdl.org/3.0/o2xdl
Schema Component Representation
<schema targetNamespace="http://www.o2xdl.org/3.0/o2xdl" elementFormDefault="qualified">
<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
...
</schema>
top

Global Declarations

Element: annotation

Nameannotation
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation The comment element, allowed almost in any point.
XML Instance Representation
<o2x:annotation>
Start Choice [0..*]
<o2x:appinfo> ... </o2x:appinfo> [1]
<o2x:documentation> ... </o2x:documentation> [1]
End Choice
</o2x:annotation>
Schema Component Representation
<element name="annotation">
<complexType>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="o2x:appinfo"/>
<element ref="o2x:documentation"/>
</choice>
</complexType>
</element>
top

Element: appinfo

Nameappinfo
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation Extra infos for automatic processing.
XML Instance Representation
<o2x:appinfo
source="anyURI [0..1] ?">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</o2x:appinfo>
Schema Component Representation
<element name="appinfo">
<complexType mixed="true">
<sequence minOccurs="0" maxOccurs="unbounded">
<any processContents="lax"/>
</sequence>
<attribute name="source" type="anyURI" use="optional"/>
</complexType>
</element>
top

Element: bag

Namebag
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation All purpose container for o2xdl elements. Used to process a full namespace, to export and import classes, etc. Basic operations: LocalExplode(bag); CreateBag(localPath)
XML Instance Representation
<o2x:bag
name="string [0..1] ?"
myURI="anyURI [0..1] ?">
Start Choice [0..*] ?
<o2x:class> ... </o2x:class> [1]
<o2x:object> ... </o2x:object> [1]
<o2x:annotation> ... </o2x:annotation> [1]
End Choice
</o2x:bag>
Schema Component Representation
<element name="bag">
<complexType>
<sequence>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="o2x:class"/>
<element ref="o2x:object"/>
<element ref="o2x:annotation"/>
</choice>
</sequence>
<attribute name="name" type="string" use="optional"/>
<attribute name="myURI" type="anyURI" use="optional"/>
</complexType>
</element>
top

Element: class

Nameclass
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation Definition of o2xdl classes. Many optional elements helps the correct use and maintenance of class tree.
XML Instance Representation
<o2x:class
name="string [0..1] ?"
properties="string (value comes from list: {'abstract'}) [0..1] ?"
mode="string (value comes from list: {'SNC'|'URI'}) [0..1] ?"
myURI="anyURI [0..1] ?">
Start Choice [0..*]
<o2x:relationship> ... </o2x:relationship> [1] ?
<o2x:dataType> o2x:ReferenceType </o2x:dataType> [1] ?
<o2x:method> ... </o2x:method> [1] ?
<o2x:contentList> ... </o2x:contentList> [1] ?
<o2x:annotation> ... </o2x:annotation> [1]
End Choice
</o2x:class>
Schema Component Representation
<element name="class">
<complexType>
<sequence>
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="o2x:relationship"/>
<element name="dataType" type="o2x:ReferenceType"/>
<element ref="o2x:method"/>
<element ref="o2x:contentList"/>
<element ref="o2x:annotation"/>
</choice>
</sequence>
<attribute name="name" type="string" use="optional"/>
<attribute name="properties" use="optional">
<simpleType>
<restriction base="string">
<enumeration value="abstract"/>
</restriction>
</simpleType>
</attribute>
<attribute name="mode">
<simpleType>
<restriction base="string">
<enumeration value="SNC"/>
<enumeration value="URI"/>
</restriction>
</simpleType>
</attribute>
<attribute name="myURI" type="anyURI" use="optional"/>
</complexType>
</element>
top

Element: contentList

NamecontentList
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation Container for building complex objects. Optional in o2x:class and o2x:object.
XML Instance Representation
<o2x:contentList
name="string [0..1] ?">
Start Choice [1..*] ?
<o2x:object> ... </o2x:object> [1]
<o2x:annotation> ... </o2x:annotation> [1]
End Choice
</o2x:contentList>
Schema Component Representation
<element name="contentList">
<complexType>
<choice minOccurs="1" maxOccurs="unbounded">
<element ref="o2x:object"/>
<element ref="o2x:annotation"/>
</choice>
<attribute name="name" type="string" use="optional"/>
</complexType>
</element>
top

Element: documentation

Namedocumentation
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation Comment for human readers.
XML Instance Representation
<o2x:documentation
source="anyURI [0..1] ?"
xml:lang="[0..1]">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</o2x:documentation>
Schema Component Representation
<element name="documentation">
<complexType mixed="true">
<sequence minOccurs="0" maxOccurs="unbounded">
<any processContents="lax"/>
</sequence>
<attribute name="source" type="anyURI" use="optional"/>
<attribute ref="xml:lang"/>
</complexType>
</element>
top

Element: method

Namemethod
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation This element defines a template set, call final, by-value or by-reference. Can be used by realize() to transform o2x:dataValues. If visibility = 'static' is a XSLT general pourpose fragment inside an o2x:class. If visibility = 'virtual' is a placeholder inside an o2x:class.
XML Instance Representation
<o2x:method
name="string [0..1] ?"
key="NMTOKEN [0..1] ?"
context="NMTOKEN [0..1] ?"
properties="NMTOKENS [0..1]"
mode="string (value comes from list: {'inline'|'SNC'|'URI'}) [0..1] ?"
URIref="anyURI [0..1] ?"
visibility="string (value comes from list: {'final'|'public'|'protected'|'private'|'virtual'|'static'}) [0..1] ?">
Start Choice [0..*]
<o2x:paramType> o2x:ReferenceType </o2x:paramType> [1] ?
<o2x:paramValues> o2x:ReferenceType </o2x:paramValues> [1] ?
<o2x:inline> o2x:XMLtree </o2x:inline> [1] ?
<o2x:annotation> ... </o2x:annotation> [1]
End Choice
</o2x:method>
Schema Component Representation
<element name="method">
<complexType>
<choice minOccurs="0" maxOccurs="unbounded">
<element name="paramType" type="o2x:ReferenceType"/>
<element name="paramValues" type="o2x:ReferenceType"/>
<element name="inline" type="o2x:XMLtree"/>
<element ref="o2x:annotation"/>
</choice>
<attribute name="name" type="string" use="optional"/>
<attribute name="key" type="NMTOKEN" use="optional"/>
<attribute name="context" type="NMTOKEN" use="optional"/>
<attribute name="properties" type="NMTOKENS" use="optional"/>
<attribute name="mode" use="optional">
<simpleType>
<restriction base="string">
<enumeration value="inline"/>
<enumeration value="SNC"/>
<enumeration value="URI"/>
</restriction>
</simpleType>
</attribute>
<attribute name="URIref" type="anyURI" use="optional"/>
<attribute name="visibility" use="optional">
<simpleType>
<restriction base="string">
<enumeration value="final"/>
<enumeration value="public"/>
<enumeration value="protected"/>
<enumeration value="private"/>
<enumeration value="virtual"/>
<enumeration value="static"/>
</restriction>
</simpleType>
</attribute>
</complexType>
</element>
top

Element: object

Nameobject
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation Definition of o2xdl object. Contains also some elements and definitions usefull in the realization phase only.
XML Instance Representation
<o2x:object
name="string [0..1] ?"
target="string [0..1] ?"
position="NMTOKEN [0..1] ?"
actualContext="NMTOKEN [0..1] ?"
using="NMTOKEN [0..1] ?"
mode="string (value comes from list: {'SNC'|'URI'}) [0..1] ?"
myURI="anyURI [0..1] ?">
<!-- Mixed content -->
Start Choice [0..*]
<o2x:dataType> o2x:ReferenceType </o2x:dataType> [1] ?
<o2x:dataValues> o2x:ReferenceType </o2x:dataValues> [1] ?
<o2x:relationship> ... </o2x:relationship> [1] ?
<o2x:method> ... </o2x:method> [1] ?
<o2x:contentList> ... </o2x:contentList> [1] ?
<o2x:annotation> ... </o2x:annotation> [1]
Allow any elements from a namespace other than this schema's namespace (lax validation). [1]
End Choice
</o2x:object>
Schema Component Representation
<element name="object">
<complexType mixed="true">
<sequence>
<choice minOccurs="0" maxOccurs="unbounded">
<element name="dataType" type="o2x:ReferenceType"/>
<element name="dataValues" type="o2x:ReferenceType"/>
<element ref="o2x:relationship"/>
<element ref="o2x:method"/>
<element ref="o2x:contentList"/>
<element ref="o2x:annotation"/>
<any namespace="##other" processContents="lax"/>
</choice>
</sequence>
<attribute name="name" type="string" use="optional"/>
<attribute name="target" type="string" use="optional"/>
<attribute name="position" type="NMTOKEN" use="optional"/>
<attribute name="actualContext" type="NMTOKEN" use="optional"/>
<attribute name="using" type="NMTOKEN" use="optional"/>
<attribute name="mode" use="optional">
<simpleType>
<restriction base="string">
<enumeration value="SNC"/>
<enumeration value="URI"/>
</restriction>
</simpleType>
</attribute>
<attribute name="myURI" type="anyURI" use="optional"/>
</complexType>
</element>
top

Element: relationship

Namerelationship
TypeLocally-defined complex type
Nillableno
Abstractno
Documentation Qualified reference to object or class.
XML Instance Representation
<o2x:relationship
role="string [1] ?">
<o2x:annotation> ... </o2x:annotation> [0..*]
Start Choice [1] ?
<o2x:object> ... </o2x:object> [1]
<o2x:class> ... </o2x:class> [1]
End Choice
<o2x:annotation> ... </o2x:annotation> [0..*]
</o2x:relationship>
Schema Component Representation
<element name="relationship">
<complexType>
<sequence>
<element ref="o2x:annotation" minOccurs="0" maxOccurs="unbounded"/>
<choice minOccurs="1" maxOccurs="1">
<element ref="o2x:object"/>
<element ref="o2x:class"/>
</choice>
<element ref="o2x:annotation" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="role" type="string" use="required">
<-- <simpleType> <restriction base='string'> <enumeration value='contentIn'/> <enumeration value='friend'/> <enumeration value='usedBy'/> <enumeration value='extends'/> <enumeration value='baseFor'/> <enumeration value='instanceOf'/> <enumeration value='instance'/> </restriction> </simpleType> -->
</attribute>
</complexType>
</element>
top

Global Definitions

Complex Type: ReferenceType

Super-types:None
Sub-types:None
NameReferenceType
Abstractno
Documentation This Type defines a generic XML tree, by-value or by-reference. Wide used in all elements, but not for o2x:methods.
XML Instance Representation
<...
name="string [0..1] ?"
mode="string (value comes from list: {'inline'|'SNC'|'URI'}) [0..1] ?"
URIref="anyURI [0..1] ?">
Start Choice [0..*]
<o2x:body> o2x:XMLtree </o2x:body> [1] ?
<o2x:annotation> ... </o2x:annotation> [1]
End Choice
</...>
Schema Component Representation
<complexType name="ReferenceType">
<choice minOccurs="0" maxOccurs="unbounded">
<element name="body" type="o2x:XMLtree"/>
<element ref="o2x:annotation"/>
</choice>
<attribute name="name" type="string" use="optional"/>
<attribute name="mode" use="optional">
<simpleType>
<restriction base="string">
<enumeration value="inline"/>
<enumeration value="SNC"/>
<enumeration value="URI"/>
</restriction>
</simpleType>
</attribute>
<attribute name="URIref" type="anyURI" use="optional"/>
</complexType>
top

Complex Type: XMLtree

Super-types:None
Sub-types:None
NameXMLtree
Abstractno
Documentation Generic XML tree locally included (by-value).
XML Instance Representation
<...>
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</...>
Schema Component Representation
<complexType name="XMLtree" mixed="true">
<sequence minOccurs="0" maxOccurs="unbounded">
<any processContents="lax"/>
</sequence>
</complexType>
top