| 1 | <?xml version="1.0" encoding="UTF-8"?> |
|---|
| 2 | <xs:schema elementFormDefault="qualified" |
|---|
| 3 | xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|---|
| 4 | |
|---|
| 5 | <!-- Start --> |
|---|
| 6 | <xs:element name="simpleTypes" type="simpleTypes"/> |
|---|
| 7 | |
|---|
| 8 | <!-- Structure --> |
|---|
| 9 | <xs:complexType name="simpleTypes"> |
|---|
| 10 | <xs:all> |
|---|
| 11 | <xs:element name="typeSafeEnumerations" type="typeSafeEnumerations" minOccurs="0"/> |
|---|
| 12 | <xs:element name="restrictedStrings" type="restrictedStrings" minOccurs="0"/> |
|---|
| 13 | <xs:element name="restrictedLongs" type="restrictedLongs" minOccurs="0"/> |
|---|
| 14 | <xs:element name="fixPointNumbers" type="fixPointNumbers" minOccurs="0"/> |
|---|
| 15 | <xs:element name="valueObjects" type="valueObjects" minOccurs="0"/> |
|---|
| 16 | </xs:all> |
|---|
| 17 | </xs:complexType> |
|---|
| 18 | |
|---|
| 19 | <!-- Stuff used in enums --> |
|---|
| 20 | <xs:complexType name="typeSafeEnumerations"> |
|---|
| 21 | <xs:sequence> |
|---|
| 22 | <xs:element name="enumeration" type="enumeration" |
|---|
| 23 | maxOccurs="unbounded" minOccurs="0"/> |
|---|
| 24 | </xs:sequence> |
|---|
| 25 | </xs:complexType> |
|---|
| 26 | <xs:complexType name="enumeration"> |
|---|
| 27 | <xs:sequence> |
|---|
| 28 | <xs:element name="description" type="description" |
|---|
| 29 | minOccurs="0"/> |
|---|
| 30 | <xs:element name="value" type="value" maxOccurs="unbounded"/> |
|---|
| 31 | <xs:element ref="state" minOccurs="0" maxOccurs="unbounded"/> |
|---|
| 32 | </xs:sequence> |
|---|
| 33 | <xs:attribute name="package" type="javaPackageName" |
|---|
| 34 | use="required"/> |
|---|
| 35 | <xs:attribute name="classname" type="javaClassName" |
|---|
| 36 | use="required"/> |
|---|
| 37 | <xs:attribute name="user-type" type="enumUserType" |
|---|
| 38 | use="optional"/> |
|---|
| 39 | <xs:attribute name="implements" type="javaQualifiedClassName" |
|---|
| 40 | use="optional"/> |
|---|
| 41 | </xs:complexType> |
|---|
| 42 | <xs:complexType mixed="true" name="value"> |
|---|
| 43 | <xs:attribute name="description" type="xs:string" |
|---|
| 44 | use="optional"/> |
|---|
| 45 | <xs:attribute name="numeric" type="xs:int" use="optional"/> |
|---|
| 46 | <!-- Refine type for symbol --> |
|---|
| 47 | <xs:attribute name="symbol" type="xs:string" use="optional"/> |
|---|
| 48 | </xs:complexType> |
|---|
| 49 | <xs:simpleType name="enumUserType"> |
|---|
| 50 | <xs:restriction base="xs:string"> |
|---|
| 51 | <xs:enumeration value="numeric"/> |
|---|
| 52 | <xs:enumeration value="integer"/> |
|---|
| 53 | <xs:enumeration value="string"/> |
|---|
| 54 | </xs:restriction> |
|---|
| 55 | </xs:simpleType> |
|---|
| 56 | |
|---|
| 57 | |
|---|
| 58 | <!-- Restricted Strings --> |
|---|
| 59 | <xs:complexType name="restrictedStrings"> |
|---|
| 60 | <xs:sequence> |
|---|
| 61 | <xs:element name="restrictedString" type="restrictedString" |
|---|
| 62 | maxOccurs="unbounded" minOccurs="0"/> |
|---|
| 63 | </xs:sequence> |
|---|
| 64 | </xs:complexType> |
|---|
| 65 | <xs:complexType mixed="true" name="restrictedString"> |
|---|
| 66 | <xs:sequence> |
|---|
| 67 | <xs:element name="description" type="description" |
|---|
| 68 | minOccurs="0"/> |
|---|
| 69 | <xs:element name="constant" type="constant" |
|---|
| 70 | minOccurs="0" maxOccurs="unbounded"/> |
|---|
| 71 | </xs:sequence> |
|---|
| 72 | <xs:attribute name="min-length" type="lengthType" |
|---|
| 73 | use="required"/> |
|---|
| 74 | <xs:attribute name="max-length" type="lengthType" |
|---|
| 75 | use="required"/> |
|---|
| 76 | <xs:attribute name="package" type="javaPackageName" |
|---|
| 77 | use="required"/> |
|---|
| 78 | <xs:attribute name="classname" type="javaClassName" |
|---|
| 79 | use="required"/> |
|---|
| 80 | <xs:attribute name="implements" type="javaQualifiedClassName" |
|---|
| 81 | use="optional"/> |
|---|
| 82 | <xs:attribute name="user-type" type="flag" use="optional"/> |
|---|
| 83 | <xs:attribute name="regex" type="xs:string" use="optional"/> |
|---|
| 84 | </xs:complexType> |
|---|
| 85 | |
|---|
| 86 | <!-- Restricted Long --> |
|---|
| 87 | <xs:complexType name="restrictedLongs"> |
|---|
| 88 | <xs:sequence> |
|---|
| 89 | <xs:element name="restrictedLong" type="restrictedLong" |
|---|
| 90 | maxOccurs="unbounded" minOccurs="0"/> |
|---|
| 91 | </xs:sequence> |
|---|
| 92 | </xs:complexType> |
|---|
| 93 | <xs:complexType name="restrictedLong"> |
|---|
| 94 | <xs:sequence> |
|---|
| 95 | <xs:element name="description" type="description" |
|---|
| 96 | minOccurs="0"/> |
|---|
| 97 | <xs:element name="constant" type="constant" |
|---|
| 98 | minOccurs="0" maxOccurs="unbounded"/> |
|---|
| 99 | </xs:sequence> |
|---|
| 100 | <xs:attribute name="classname" type="javaClassName" |
|---|
| 101 | use="required"/> |
|---|
| 102 | <xs:attribute name="package" type="javaPackageName" |
|---|
| 103 | use="required"/> |
|---|
| 104 | <xs:attribute name="max-value" type="xs:string" use="required"/> |
|---|
| 105 | <xs:attribute name="min-value" type="xs:string" use="required"/> |
|---|
| 106 | <xs:attribute name="user-type" type="flag" use="optional"/> |
|---|
| 107 | </xs:complexType> |
|---|
| 108 | |
|---|
| 109 | <!-- Fix Point Numbers --> |
|---|
| 110 | <xs:complexType name="fixPointNumbers"> |
|---|
| 111 | <xs:sequence> |
|---|
| 112 | <xs:element name="fixPointNumber" type="fixPointNumber" |
|---|
| 113 | maxOccurs="unbounded" minOccurs="0"/> |
|---|
| 114 | </xs:sequence> |
|---|
| 115 | </xs:complexType> |
|---|
| 116 | <xs:complexType name="fixPointNumber"> |
|---|
| 117 | <xs:sequence> |
|---|
| 118 | <xs:element name="description" type="description" minOccurs="0"/> |
|---|
| 119 | <xs:element name="constant" type="constant" |
|---|
| 120 | minOccurs="0" maxOccurs="unbounded"/> |
|---|
| 121 | </xs:sequence> |
|---|
| 122 | <xs:attribute name="classname" type="javaClassName" |
|---|
| 123 | use="required"/> |
|---|
| 124 | <xs:attribute name="package" type="javaPackageName" |
|---|
| 125 | use="required"/> |
|---|
| 126 | <xs:attribute name="total-digits" type="xs:int" |
|---|
| 127 | use="required"/> |
|---|
| 128 | <xs:attribute name="max-value" type="xs:string" use="optional"/> |
|---|
| 129 | <xs:attribute name="min-value" type="xs:string" use="required"/> |
|---|
| 130 | <xs:attribute name="fraction-digits" type="xs:int" |
|---|
| 131 | use="required"/> |
|---|
| 132 | <xs:attribute name="user-type" type="flag" use="optional"/> |
|---|
| 133 | </xs:complexType> |
|---|
| 134 | |
|---|
| 135 | |
|---|
| 136 | <!-- Value Objects --> |
|---|
| 137 | <xs:complexType name="valueObjects"> |
|---|
| 138 | <xs:sequence> |
|---|
| 139 | <xs:element name="valueObject" type="valueObject" |
|---|
| 140 | maxOccurs="unbounded" minOccurs="0"/> |
|---|
| 141 | </xs:sequence> |
|---|
| 142 | </xs:complexType> |
|---|
| 143 | <xs:complexType name="valueObject"> |
|---|
| 144 | <xs:sequence> |
|---|
| 145 | <xs:element name="description" type="description" |
|---|
| 146 | minOccurs="0"/> |
|---|
| 147 | <xs:element name="xdoclet" type="xdoclet" minOccurs="0"/> |
|---|
| 148 | <xs:element name="member" type="member" |
|---|
| 149 | maxOccurs="unbounded"/> |
|---|
| 150 | </xs:sequence> |
|---|
| 151 | <xs:attribute name="classname" type="javaClassName" |
|---|
| 152 | use="required"/> |
|---|
| 153 | <xs:attribute name="package" type="javaPackageName" |
|---|
| 154 | use="required"/> |
|---|
| 155 | <xs:attribute name="implements" type="javaQualifiedClassName" |
|---|
| 156 | use="optional"/> |
|---|
| 157 | <xs:attribute name="baseclass" type="javaQualifiedClassName" use="optional"/> |
|---|
| 158 | <xs:attribute name="serializable" type="flag" use="optional"/> |
|---|
| 159 | <xs:attribute name="final" type="flag" use="optional"/> |
|---|
| 160 | </xs:complexType> |
|---|
| 161 | <xs:complexType name="member" mixed="true"> |
|---|
| 162 | <xs:sequence> |
|---|
| 163 | <xs:element name="description" type="description" |
|---|
| 164 | minOccurs="0"/> |
|---|
| 165 | <xs:element name="xdoclet" type="xdoclet" minOccurs="0"/> |
|---|
| 166 | </xs:sequence> |
|---|
| 167 | <xs:attribute name="name" type="xs:string" use="required"/> |
|---|
| 168 | <xs:attribute name="initial-value" type="xs:string" |
|---|
| 169 | use="optional"/> |
|---|
| 170 | <xs:attribute name="type" type="xs:string" use="required"/> |
|---|
| 171 | <xs:attribute name="identity-independent" type="flag" |
|---|
| 172 | use="optional"/> |
|---|
| 173 | <xs:attribute name="final" type="flag" use="optional"/> |
|---|
| 174 | <xs:attribute name="copyValue" type="copyValue" use="optional"/> |
|---|
| 175 | </xs:complexType> |
|---|
| 176 | <xs:complexType name="xdoclet"> |
|---|
| 177 | <xs:sequence> |
|---|
| 178 | <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
|---|
| 179 | </xs:sequence> |
|---|
| 180 | </xs:complexType> |
|---|
| 181 | <xs:simpleType name="copyValue"> |
|---|
| 182 | <xs:restriction base="xs:string"> |
|---|
| 183 | <xs:enumeration value="clone"/> |
|---|
| 184 | <xs:enumeration value="constructor"/> |
|---|
| 185 | </xs:restriction> |
|---|
| 186 | </xs:simpleType> |
|---|
| 187 | |
|---|
| 188 | |
|---|
| 189 | <!-- Used globally --> |
|---|
| 190 | <xs:simpleType name="lengthType"> |
|---|
| 191 | <xs:restriction base="xs:string"/> |
|---|
| 192 | </xs:simpleType> |
|---|
| 193 | <xs:simpleType name="javaPackageName"> |
|---|
| 194 | <xs:restriction base="xs:string"/> |
|---|
| 195 | </xs:simpleType> |
|---|
| 196 | <xs:simpleType name="javaClassName"> |
|---|
| 197 | <xs:restriction base="xs:string"/> |
|---|
| 198 | </xs:simpleType> |
|---|
| 199 | <xs:simpleType name="javaQualifiedClassName"> |
|---|
| 200 | <xs:restriction base="xs:string"/> |
|---|
| 201 | </xs:simpleType> |
|---|
| 202 | <xs:complexType name="constant"> |
|---|
| 203 | <xs:attribute name="name" type="xs:NMTOKEN" use="required"/> |
|---|
| 204 | <xs:attribute name="value" type="xs:NMTOKEN" use="required"/> |
|---|
| 205 | <xs:attribute name="comment" type="xs:string" use="optional"/> |
|---|
| 206 | </xs:complexType> |
|---|
| 207 | <xs:simpleType name="flag"> |
|---|
| 208 | <xs:restriction base="xs:string"> |
|---|
| 209 | <xs:enumeration value="true"/> |
|---|
| 210 | </xs:restriction> |
|---|
| 211 | </xs:simpleType> |
|---|
| 212 | <xs:complexType mixed="true" name="description"> |
|---|
| 213 | <xs:sequence> |
|---|
| 214 | <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> |
|---|
| 215 | </xs:sequence> |
|---|
| 216 | </xs:complexType> |
|---|
| 217 | |
|---|
| 218 | |
|---|
| 219 | <!-- TODO --> |
|---|
| 220 | <xs:element name="state"> |
|---|
| 221 | <xs:complexType> |
|---|
| 222 | <xs:sequence> |
|---|
| 223 | <xs:element ref="transition" minOccurs="0" |
|---|
| 224 | maxOccurs="unbounded"/> |
|---|
| 225 | </xs:sequence> |
|---|
| 226 | <xs:attribute name="name" type="xs:NMTOKEN" |
|---|
| 227 | use="required"/> |
|---|
| 228 | <xs:attribute name="type" type="xs:NMTOKEN" |
|---|
| 229 | use="optional"/> |
|---|
| 230 | </xs:complexType> |
|---|
| 231 | </xs:element> |
|---|
| 232 | <xs:element name="transition"> |
|---|
| 233 | <xs:complexType> |
|---|
| 234 | <xs:attribute name="name" type="xs:string" use="required"/> |
|---|
| 235 | <xs:attribute name="target" type="xs:NMTOKEN" |
|---|
| 236 | use="required"/> |
|---|
| 237 | </xs:complexType> |
|---|
| 238 | </xs:element> |
|---|
| 239 | </xs:schema> |
|---|