office-gobmx/officecfg/registry/component-schema.xsd
Vladimir Glazounov 4630570447 INTEGRATION: CWS configxml01 (1.5.24); FILE MERGED
2003/05/16 14:38:33 jb 1.5.24.1: #109668# Rename oor:node -> oor:component-data
2003-05-27 10:35:52 +00:00

224 lines
10 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Dirk Grobler (OpenOffice) -->
<xs:schema targetNamespace="http://openoffice.org/2001/registry" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="qualified">
<xs:annotation>
<xs:documentation>specifies the document format for OOo configuration component schemata.</xs:documentation>
</xs:annotation>
<xs:attribute name="extensible" type="xs:boolean" use="optional" default="false">
<xs:annotation>
<xs:documentation>determines, whether a node has an extensible list of attributes or fixed list of attributes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="localized" type="xs:boolean" use="optional" default="false">
<xs:annotation>
<xs:documentation>specifies, whether an attribute has or might have different values for different locales. </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="nillable" type="xs:boolean" use="optional" default="true">
<xs:annotation>
<xs:documentation>specifies, whether it is permissible to have a 'nil' i.e., missing, node content. The default for 'nillable' is 'true'.
If a non-optional (nillable = 'false') has no default value (given in the component schema) it must be
explicitly specified for each user.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:complexType name="prop">
<xs:annotation>
<xs:documentation>redefines the property type
by adding documentation and type constraint elements.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="oor:basic-prop">
<xs:sequence>
<xs:element name="info" type="oor:info" minOccurs="0"/>
<xs:element name="constraints" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="enumeration" type="oor:constraint" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="length" type="oor:constraint" minOccurs="0"/>
<xs:element name="minLength" type="oor:constraint" minOccurs="0"/>
<xs:element name="maxLength" type="oor:constraint" minOccurs="0"/>
<xs:element name="minInclusive" type="oor:constraint" minOccurs="0"/>
<xs:element name="maxInclusive" type="oor:constraint" minOccurs="0"/>
<xs:element name="minExclusive" type="oor:constraint" minOccurs="0"/>
<xs:element name="maxExclusive" type="oor:constraint" minOccurs="0"/>
<xs:element name="whiteSpace" type="oor:constraint" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="value" type="oor:value" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="oor:localized"/>
<xs:attribute ref="oor:nillable"/>
<xs:attribute ref="oor:type" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="group">
<xs:annotation>
<xs:documentation>type definition for group nodes</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="oor:basic-node">
<xs:sequence>
<xs:element name="info" type="oor:info" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="prop" type="oor:prop" />
<xs:element name="group" type="oor:group"/>
<xs:element name="set" type="oor:set"/>
<xs:element name="node-ref" type="oor:node-ref"/>
</xs:choice>
</xs:sequence>
<xs:attribute ref="oor:extensible"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="set">
<xs:annotation>
<xs:documentation>type definition for set nodes</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="oor:basic-node">
<xs:sequence>
<xs:element name="info" type="oor:info" minOccurs="0"/>
<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attributeGroup ref="oor:node-type-info" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="oor:extensible"/>
<xs:attributeGroup ref="oor:node-type-info" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="node-ref">
<xs:annotation>
<xs:documentation>allows to define node references. A node references points to an existing templated definition. This definition will be expanded at runtime.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="info" type="oor:info" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="oor:name" use="required"/>
<xs:attributeGroup ref="oor:node-type-info" />
</xs:complexType>
<xs:complexType name="constraint">
<xs:annotation>
<xs:documentation>basic type for constraints, which can be applied for property elements.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="info" type="oor:info" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="value" type="xs:anySimpleType" use="required"/>
</xs:complexType>
<xs:complexType name="info">
<xs:annotation>
<xs:documentation>type for providing human readable information. Can be attached to any kind of component schema element.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="deprecated" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>identifies an entry as deprecated. Can be assiciated with an explanation e.g. since when the entry is deprecated.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>author(s) of the configuration entry.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="desc" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>provide a human
readable documentation for a schema element.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="xml:lang"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="label" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>describes a title or label,
which can be reused in a console.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="xml:lang"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="component-schema">
<xs:annotation>
<xs:documentation>Root element, which encompasses the schema specification</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="info" type="oor:info" minOccurs="0"/>
<xs:element name="import" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute ref="oor:component" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="uses" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute ref="oor:component" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="templates" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="group" type="oor:group">
<xs:unique name="groupMember">
<xs:selector xpath="group|set|node-ref|prop"/>
<xs:field xpath="@oor:name"/>
</xs:unique>
</xs:element>
<xs:element name="set" type="oor:set"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:unique name="templatesMember">
<xs:selector xpath="oor:group|oor:set"/>
<xs:field xpath="@oor:name"/>
</xs:unique>
</xs:element>
<xs:element name="component">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="prop" type="oor:prop"/>
<xs:element name="node-ref" type="oor:node-ref"/>
<xs:element name="group" type="oor:group">
<xs:unique name="groupMember1">
<xs:selector xpath="oor:group|oor:set|oor:node-ref|oor:prop"/>
<xs:field xpath="@oor:name"/>
</xs:unique>
</xs:element>
<xs:element name="set" type="oor:set"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:unique name="schemaMember">
<xs:selector xpath="oor:group|oor:set|oor:node-ref|oor:prop"/>
<xs:field xpath="@oor:name"/>
</xs:unique>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
<xs:attribute ref="oor:package"/>
<xs:attribute name="version" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>identifies the version of the component. The version number is build of major.minor.micro</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute ref="xml:lang" use="optional"/>
</xs:complexType>
</xs:element>
</xs:schema>