/lib/xmerl/test/xmerl_xsd_SUITE_data/mim.xsd
https://github.com/elaufis/otp · XML Schema · 511 lines · 507 code · 4 blank · 0 comment · 0 complexity · 7a34527359adab2bda033feacc609b70 MD5 · raw file
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <!--
-
- Copyright (c) Ericsson AB 2006 All rights reserved.
-
- The information in this document is the property of Ericsson.
-
- Except as specifically authorized in writing by Ericsson, the
- receiver of this document shall keep the information contained
- herein confidential and shall protect the same in whole or in
- part from disclosure and dissemination to third parties.
-
- Disclosure and disseminations to the receivers employees shall
- only be made on a strict need to know basis.
- -->
- <!-- Common -->
- <xs:element name="description" type="xs:string"/>
- <xs:element name="applicationTag">
- <xs:complexType>
- <xs:group minOccurs="0" maxOccurs="unbounded" ref="anyElement"/>
- </xs:complexType>
- </xs:element>
- <xs:attributeGroup name="anyAttribute">
- <xs:anyAttribute processContents="skip"/>
- </xs:attributeGroup>
- <xs:group name="anyElement">
- <xs:sequence>
- <xs:any processContents="skip"/>
- </xs:sequence>
- </xs:group>
- <!-- Mim definition -->
- <xs:element name="mim">
- <xs:complexType>
- <xs:sequence>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="namedStruct"/>
- <xs:element ref="enum"/>
- <xs:group ref="dataTypeDef"/>
- <xs:element ref="exception"/>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="class"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="relationship"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- MO class definition -->
- <xs:element name="class">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:choice>
- <xs:sequence>
- <xs:element ref="singleton"/>
- <xs:element minOccurs="0" ref="systemCreated"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="namedStruct"/>
- <xs:element ref="enum"/>
- <xs:group ref="dataTypeDef"/>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="attribute"/>
- </xs:sequence>
- <xs:sequence>
- <xs:element minOccurs="0" ref="systemCreated"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="namedStruct"/>
- <xs:element ref="enum"/>
- <xs:group ref="dataTypeDef"/>
- </xs:choice>
- <xs:element maxOccurs="unbounded" ref="attribute"/>
- </xs:sequence>
- </xs:choice>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="action"/>
- <xs:element minOccurs="0" ref="notificationTypes"/>
- </xs:sequence>
- <xs:attribute name="name" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="[A-Z][A-Za-z0-9]*"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="singleton">
- <xs:complexType/>
- </xs:element>
- <xs:element name="systemCreated">
- <xs:complexType/>
- </xs:element>
- <xs:element name="notificationTypes" type="xs:string"/>
- <!-- Relations -->
- <xs:element name="relationship">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:element ref="containment"/>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="containment">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="parent"/>
- <xs:element ref="child"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="parent" type="hasClass"/>
- <xs:element name="child">
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="hasClass">
- <xs:sequence>
- <xs:element minOccurs="0" ref="cardinality"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="cardinality">
- <xs:complexType>
- <xs:choice>
- <xs:element ref="min"/>
- <xs:element ref="max"/>
- <xs:sequence>
- <xs:element ref="min"/>
- <xs:element ref="max"/>
- </xs:sequence>
- </xs:choice>
- </xs:complexType>
- </xs:element>
- <xs:complexType name="hasClass">
- <xs:sequence>
- <xs:element ref="hasClass"/>
- </xs:sequence>
- </xs:complexType>
- <xs:element name="hasClass">
- <xs:complexType>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Data types -->
- <xs:group name="type">
- <xs:choice>
- <xs:element ref="boolean"/>
- <xs:element ref="float"/>
- <xs:element ref="integer"/>
- <xs:element ref="string"/>
- <xs:group ref="struct"/>
- <xs:element ref="enumRef"/>
- <xs:element ref="structRef"/>
- <xs:element ref="moRef"/>
- </xs:choice>
- </xs:group>
- <!-- For attributes, parameters and exceptions -->
- <xs:group name="dataType">
- <xs:sequence>
- <xs:element name="dataType">
- <xs:complexType>
- <xs:choice>
- <xs:group ref="type"/>
- <xs:element ref="sequence"/>
- </xs:choice>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:group>
- <xs:group name="dataTypeDef">
- <xs:sequence>
- <xs:element name="dataType">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:choice>
- <xs:group ref="type"/>
- <xs:element ref="sequence"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:group>
- <xs:group name="dataTypeRef">
- <xs:sequence>
- <xs:element name="dataType">
- <xs:complexType>
- <xs:attribute name="name.ref" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:group>
- <!-- For actions -->
- <xs:element name="returnType">
- <xs:complexType>
- <xs:choice>
- <xs:element ref="void"/>
- <xs:group ref="type"/>
- <xs:element ref="sequence"/>
- <xs:group ref="dataTypeRef"/>
- </xs:choice>
- </xs:complexType>
- </xs:element>
- <!-- Return data types -->
- <xs:element name="void">
- <xs:complexType/>
- </xs:element>
- <!-- Primitive data types -->
- <xs:element name="boolean">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="defaultValue"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="float">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="range"/>
- <xs:element minOccurs="0" ref="defaultValue"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="integer">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="range"/>
- <xs:element minOccurs="0" ref="defaultValue"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="string">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="lengthRange"/>
- <xs:element minOccurs="0" ref="validValues"/>
- <xs:element minOccurs="0" ref="pattern"/>
- <xs:element minOccurs="0" ref="defaultValue"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="pattern" type="xs:string"/>
- <xs:element name="validValues" type="xs:string"/>
- <xs:element name="lengthRange">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="min"/>
- <xs:sequence minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="min"/>
- <xs:element ref="max"/>
- </xs:sequence>
- <xs:element minOccurs="0" ref="max"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="range">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="min"/>
- <xs:sequence minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="min"/>
- <xs:element ref="max"/>
- </xs:sequence>
- <xs:element minOccurs="0" ref="max"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="max" type="xs:string"/>
- <xs:element name="min" type="xs:string"/>
- <xs:element name="defaultValue" type="xs:string"/>
- <!-- Enum data type -->
- <xs:element name="enum">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:element maxOccurs="unbounded" ref="enumMember"/>
- <xs:element minOccurs="0" ref="defaultValue"/>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="enumMember">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:element minOccurs="0" ref="value"/>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="enumRef">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="defaultValue"/>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="value" type="xs:string"/>
- <!-- Struct data type -->
- <xs:group name="namedStruct">
- <xs:sequence>
- <xs:element name="struct">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:element maxOccurs="unbounded" ref="structMember"/>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:group>
- <xs:group name="struct">
- <xs:sequence>
- <xs:element name="struct">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="structMember"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:group>
- <xs:element name="structMember">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:choice>
- <xs:group ref="type"/>
- <xs:element ref="sequence"/>
- <xs:group ref="dataTypeRef"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="structRef">
- <xs:complexType>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Sequence data type -->
- <xs:element name="sequence">
- <xs:complexType>
- <xs:sequence>
- <xs:choice>
- <xs:group ref="type"/>
- <xs:group ref="dataTypeRef"/>
- </xs:choice>
- <xs:element minOccurs="0" ref="minLength"/>
- <xs:element minOccurs="0" ref="maxLength"/>
- <xs:element minOccurs="0" ref="nonUnique"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="minLength" type="xs:string"/>
- <xs:element name="maxLength" type="xs:string"/>
- <xs:element name="nonUnique">
- <xs:complexType/>
- </xs:element>
- <!-- MoRef data type -->
- <xs:element name="moRef">
- <xs:complexType>
- <xs:attribute name="name" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="(/[A-Z][A-Za-z0-9]*)*"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <!-- Attribute -->
- <xs:element name="attribute">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag">
- <xs:annotation>
- <xs:documentation>Currently not used in IS.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:choice>
- <xs:group ref="dataType"/>
- <xs:group ref="dataTypeRef"/>
- </xs:choice>
- <xs:element minOccurs="0" ref="initialValue"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="noNotification"/>
- <xs:element ref="restricted"/>
- <xs:element ref="readOnly"/>
- <xs:choice>
- <xs:element ref="key"/>
- <xs:choice>
- <xs:element ref="local"/>
- <xs:element ref="mandatory"/>
- <xs:element ref="nonPersistent"/>
- <xs:element ref="static"/>
- <xs:element ref="undefined"/>
- </xs:choice>
- </xs:choice>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="name" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-z][a-zA-Z0-9]*"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="initialValue" type="xs:string"/>
- <xs:element name="key">
- <xs:complexType/>
- </xs:element>
- <xs:element name="local">
- <xs:complexType/>
- </xs:element>
- <xs:element name="mandatory">
- <xs:complexType/>
- </xs:element>
- <xs:element name="noNotification">
- <xs:complexType/>
- </xs:element>
- <xs:element name="nonPersistent">
- <xs:complexType/>
- </xs:element>
- <xs:element name="readOnly">
- <xs:complexType/>
- </xs:element>
- <xs:element name="restricted">
- <xs:complexType/>
- </xs:element>
- <xs:element name="static">
- <xs:complexType/>
- </xs:element>
- <xs:element name="undefined">
- <xs:complexType/>
- </xs:element>
- <!-- Action -->
- <xs:element name="action">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:element ref="returnType"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="raisesException"/>
- </xs:sequence>
- <xs:attribute name="name" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:pattern value="[a-z][a-zA-Z0-9]*"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="parameter">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:choice>
- <xs:group ref="dataType"/>
- <xs:group ref="dataTypeRef"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="exception">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="exceptionParameter"/>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="exceptionParameter">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" ref="description"/>
- <xs:element minOccurs="0" ref="applicationTag"/>
- <xs:choice>
- <xs:group ref="dataType"/>
- <xs:group ref="dataTypeRef"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="raisesException">
- <xs:complexType>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:schema>