merge the formfield patch from ooo-build
[ooovba.git] / officecfg / registry / component-types.xsd
blob9b2f2371ce2f98db0b420a6179ff91586820fd4b
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema targetNamespace="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:oor="http://openoffice.org/2001/registry" elementFormDefault="unqualified" attributeFormDefault="qualified">
3 <xs:annotation>
4 <xs:documentation>provides a list of standard attribute and element definitions, reused in most parts of the different OOR document types</xs:documentation>
5 </xs:annotation>
6 <xs:import namespace="http://www.w3.org/XML/1998/namespace"
7 schemaLocation="http://www.w3.org/2001/xml.xsd"/>
8 <!--List of attributes known in OOR-->
9 <xs:attribute name="name" type="xs:string" use="required">
10 <xs:annotation>
11 <xs:documentation>identifies a node or an attribute within a tree, must be unique for all siblings.</xs:documentation>
12 </xs:annotation>
13 </xs:attribute>
14 <xs:attribute name="package" type="xs:NMTOKEN" use="required">
15 <xs:annotation>
16 <xs:documentation>contains the name of the package.
17 Package names are composed similar to java packages.
18 Packages are used to structure component configuration data.
19 An example of a package is 'org.openoffice',
20 where 'org' and 'openoffice' each define a package.</xs:documentation>
21 </xs:annotation>
22 </xs:attribute>
23 <xs:attribute name="node-type" type="xs:NMTOKEN">
24 <xs:annotation>
25 <xs:documentation>identifies the template to use for the set or a node reference. </xs:documentation>
26 </xs:annotation>
27 </xs:attribute>
28 <xs:attribute name="component" type="xs:string" use="optional">
29 <xs:annotation>
30 <xs:documentation>specifies the component, which contains a template definition</xs:documentation>
31 </xs:annotation>
32 </xs:attribute>
33 <xs:attribute name="separator" type="xs:string" default=" ">
34 <xs:annotation>
35 <xs:documentation>specifies a separator for list types. The default
36 is a blank, which is sufficient for most basic types like xs:int or
37 xs:boolean. Only in certain cases, when using a sting or a binary
38 list, the separator might differ. For example, a list of string values like build of the items 'europe' and 'south america' needs a different separator, as the usage of the default separator would result in a list of three items.</xs:documentation>
39 </xs:annotation>
40 </xs:attribute>
41 <xs:attribute name="type" use="optional">
42 <xs:annotation>
43 <xs:documentation>specifies the list of known basic types and their list equivalents. Is only allowed for properties.</xs:documentation>
44 </xs:annotation>
45 <xs:simpleType>
46 <xs:restriction base="xs:string">
47 <xs:enumeration value="xs:boolean"/>
48 <xs:enumeration value="xs:short"/>
49 <xs:enumeration value="xs:int"/>
50 <xs:enumeration value="xs:long"/>
51 <xs:enumeration value="xs:double"/>
52 <xs:enumeration value="xs:string"/>
53 <xs:enumeration value="xs:hexBinary"/>
54 <xs:enumeration value="oor:any"/>
55 <xs:enumeration value="oor:boolean-list"/>
56 <xs:enumeration value="oor:short-list"/>
57 <xs:enumeration value="oor:int-list"/>
58 <xs:enumeration value="oor:long-list"/>
59 <xs:enumeration value="oor:double-list"/>
60 <xs:enumeration value="oor:string-list"/>
61 <xs:enumeration value="oor:hexBinary-list"/>
62 </xs:restriction>
63 </xs:simpleType>
64 </xs:attribute>
65 <xs:attributeGroup name="node-info">
66 <xs:annotation>
67 <xs:documentation>encompasses common attributes for nodes.</xs:documentation>
68 </xs:annotation>
69 <xs:attribute ref="oor:name" use="required"/>
70 </xs:attributeGroup>
71 <xs:attributeGroup name="node-type-info">
72 <xs:annotation>
73 <xs:documentation>encompasses attributes for referencing a node-type.</xs:documentation>
74 </xs:annotation>
75 <xs:attribute ref="oor:node-type" use="required"/>
76 <xs:attribute ref="oor:component" use="optional"/>
77 </xs:attributeGroup>
78 <xs:attributeGroup name="prop-info">
79 <xs:annotation>
80 <xs:documentation>encompasses common attributes for properties.</xs:documentation>
81 </xs:annotation>
82 <xs:attribute ref="oor:name" use="required"/>
83 </xs:attributeGroup>
84 <!--List of list data types supported by OOR-->
85 <xs:simpleType name="boolean-list">
86 <xs:list itemType="xs:boolean"/>
87 </xs:simpleType>
88 <xs:simpleType name="short-list">
89 <xs:list itemType="xs:short"/>
90 </xs:simpleType>
91 <xs:simpleType name="int-list">
92 <xs:list itemType="xs:int"/>
93 </xs:simpleType>
94 <xs:simpleType name="long-list">
95 <xs:list itemType="xs:long"/>
96 </xs:simpleType>
97 <xs:simpleType name="double-list">
98 <xs:list itemType="xs:double"/>
99 </xs:simpleType>
100 <xs:simpleType name="string-list">
101 <xs:restriction base="xs:string"/>
102 </xs:simpleType>
103 <xs:simpleType name="hexBinary-list">
104 <xs:restriction base="xs:string"/>
105 </xs:simpleType>
106 <!--List of basic type definitions for all schema and instance elements known by OOR-->
107 <xs:complexType name="basic-node">
108 <xs:annotation>
109 <xs:documentation>base class for all kinds of nodes (set | group)</xs:documentation>
110 </xs:annotation>
111 <xs:attributeGroup ref="oor:node-info"/>
112 </xs:complexType>
113 <xs:complexType name="basic-prop">
114 <xs:annotation>
115 <xs:documentation>type definition for node properties</xs:documentation>
116 </xs:annotation>
117 <xs:attributeGroup ref="oor:prop-info"/>
118 </xs:complexType>
119 <xs:complexType name="value">
120 <xs:annotation>
121 <xs:documentation>type definition for value nodes.</xs:documentation>
122 </xs:annotation>
123 <xs:simpleContent>
124 <xs:extension base="oor:anyValue">
125 <xs:attribute ref="oor:separator" use="optional"/>
126 </xs:extension>
127 </xs:simpleContent>
128 </xs:complexType>
129 <xs:simpleType name="anyValue">
130 <xs:annotation>
131 <xs:documentation>defines the list of possible basic data-types for properties.</xs:documentation>
132 </xs:annotation>
133 <xs:union memberTypes="xs:boolean xs:short xs:int xs:long xs:double xs:string xs:hexBinary oor:boolean-list oor:short-list oor:int-list oor:long-list oor:double-list oor:string-list oor:hexBinary-list"/>
134 </xs:simpleType>
135 </xs:schema>