An error occurred while loading the file. Please try again.
-
dkuhlman authored8369c75f
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="people" type="peopleType">
<xs:annotation><xs:documentation>
A list of people.
</xs:documentation></xs:annotation>
</xs:element>
<xs:complexType name="peopleType">
<xs:sequence>
<xs:element name="comments" type="commentsType" maxOccurs="unbounded"/>
<xs:element name="person" maxOccurs="unbounded" type="personType"/>
<xs:element name="specialperson" maxOccurs="unbounded" type="specialperson"/>
<xs:group ref="programmerGroup" />
</xs:sequence>
</xs:complexType>
<xs:group name="programmerGroup">
<xs:sequence>
<xs:element name="programmer" maxOccurs="unbounded" type="programmerType"/>
<xs:element name="python-programmer" maxOccurs="unbounded" type="python-programmerType"/>
<xs:element name="java-programmer" maxOccurs="unbounded" type="java-programmerType"/>
</xs:sequence>
</xs:group>
<xs:element name="comments" type="commentsType">
</xs:element>
<xs:complexType name="commentsType" mixed="true">
<xs:sequence>
<!--
<xs:element name="emp" type="xs:string" />
-->
<xs:element name="emp" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="bold" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="person" type="personType">
<xs:annotation><xs:documentation>
A generic person. This is the base for a number of different
kinds of people. They are each an extension of this base
type of person.
</xs:documentation></xs:annotation>
</xs:element>
<xs:complexType name="personType" mixed="0">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="interest" type="xs:string" maxOccurs="unbounded" />
<xs:element name="category" type="xs:integer" minOccurs="0" />
<xs:element name="hot.agent" type="hot.agent" />
<xs:element name="agent" type="agentType" maxOccurs="unbounded" />
<xs:element name="promoter" type="boosterType" maxOccurs="unbounded" />
<xs:element name="description" type="xs:string"/>
<xs:element name="range" type="RangeType"/>
<!-- Check use of python keyword as element name. -->
<xs:element name="with" type="boosterType" />
</xs:sequence>
<xs:attribute name="value" type="xs:ID" />
<xs:attribute name="id" type="xs:integer" />
<xs:attribute name="ratio" type="xs:float" />
<xs:attributeGroup ref="favorites" />
</xs:complexType>
<xs:complexType name="specialperson">
<xs:complexContent>
<xs:extension base="personType">
<xs:sequence>
<!--
<xs:element name="musicalinstrument" type="xs:string" />
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
-->
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--
<xs:element name="description-a" type="xs:string" substitutionGroup="description" />
-->
<xs:element name="programmer" type="programmerType">
<xs:annotation><xs:documentation>
A programmer type of person. Programmers are very special
but also a little shy.
</xs:documentation></xs:annotation>
</xs:element>
<xs:complexType name="programmerType" mixed="0">
<xs:complexContent>
<xs:extension base="personType">
<xs:sequence>
<!--
<xs:element name="description" type="xs:string"/>
-->
<xs:element name="email" type="xs:string"/>
<xs:element name="elposint" type="xs:positiveInteger"/>
<xs:element name="elnonposint" type="xs:nonPositiveInteger"/>
<xs:element name="elnegint" type="xs:negativeInteger"/>
<xs:element name="elnonnegint" type="xs:nonNegativeInteger"/>
<xs:element name="eldate" type="xs:date"/>
<xs:element name="eldatetime" type="xs:dateTime"/>
<xs:element name="eldatetime1" type="xs:dateTime"/>
<xs:element name="eltoken" type="xs:token"/>
<xs:element name="elshort" type="xs:short"/>
<xs:element name="ellong" type="xs:long"/>
<xs:element name="elparam" type="paramType"/>
<xs:element name="elarraytypes" type="ArrayTypes"/>
</xs:sequence>
<xs:attribute name="language" type="xs:string" />
<xs:attribute name="area"/>
<xs:attribute name="attrposint" type="xs:positiveInteger"/>
<xs:attribute name="attrnonposint" type="xs:nonPositiveInteger"/>
<xs:attribute name="attrnegint" type="xs:negativeInteger"/>
<xs:attribute name="attrnonnegint" type="xs:nonNegativeInteger"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="param" type="paramType">
<xs:annotation>
<xs:documentation>Finding flow attribute unneccesary in practice. A unnamed parameter is unbound/skipped.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="paramType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:ID" />
<xs:attribute name="name" type="xs:NCName" />
<xs:attribute name="sid" type="xs:NCName" />
<xs:attribute name="flow" type="FlowType" />
<xs:attribute name="semantic" type="xs:token" />
<xs:attribute name="type" type="xs:NMTOKEN" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ArrayTypes">
<xs:restriction base="xs:NMTOKEN">
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
<xs:enumeration value="float" />
<xs:enumeration value="int" />
<xs:enumeration value="Name" />
<xs:enumeration value="token" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="FlowType">
<xs:restriction base="xs:integer">
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="RangeType">
<xs:restriction base="xs:integer">
</xs:restriction>
</xs:simpleType>
<xs:element name="python-programmer" type="python-programmerType">
<xs:annotation><xs:documentation>
A Python programmer type of person. Programmers are very special
and Python programmers are especially wonderful kinds
of people.
</xs:documentation></xs:annotation>
</xs:element>
<xs:complexType mixed="0" name="python-programmerType">
<xs:complexContent>
<xs:extension base="programmerType">
<xs:sequence>
<xs:element name="favorite-editor" type="xs:string"/>
<xs:element name="flowvalue" type="FlowType"/>
<xs:element name="drcs" type="xs:string"/>
</xs:sequence>
<xs:attribute name="nick-name"/>
<xs:attribute name="drcs" type="xs:string" />
<xs:attribute name="gui_developer" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="java-programmer" type="java-programmerType">
<xs:annotation><xs:documentation>
A Java programmer type of person. Programmers are very special
and Java programmers are nice also, but not as especially wonderful
as Python programmers, of course.
</xs:documentation></xs:annotation>
</xs:element>
<xs:complexType mixed="0" name="java-programmerType">
<xs:complexContent>
<xs:extension base="programmerType">
<xs:sequence>
<xs:element name="favorite-editor" type="xs:string"/>
<xs:element name="datetime1" type="xs:gYear"/>
<xs:element name="datetime2" type="xs:gYearMonth"/>
<xs:element name="datetime3" type="xs:gMonth"/>
<xs:element name="datetime4" type="xs:gMonthDay"/>
<xs:element name="datetime5" type="xs:gDay"/>
</xs:sequence>
<xs:attribute name="nick-name"/>
<xs:attribute name="status"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="agent" type="agentType">
</xs:element>
<xs:complexType name="agentType">
<xs:sequence>
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="priority" type="xs:float" minOccurs="0" />
<xs:element name="info" type="infoType"/>
<xs:element ref="vehicle" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:element name="special-agent" type="special-agentType"
substitutionGroup="agent">
</xs:element>
<xs:complexType name="special-agentType">
<xs:annotation><xs:documentation>
This is a good kind of agent for testing the generation
of Python bindings for an XML schema.
</xs:documentation></xs:annotation>
<xs:complexContent>
<xs:extension base="agentType">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="priority" type="xs:float"/>
<xs:element name="info" type="infoType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="weird-agent" type="weird-agentType"
substitutionGroup="agent">
</xs:element>
<xs:complexType name="weird-agentType">
<xs:annotation><xs:documentation>
This is a good kind of agent for testing the generation
of Python bindings for an XML schema.
</xs:documentation></xs:annotation>
<xs:complexContent>
<xs:extension base="agentType">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="priority" type="xs:float"/>
<xs:element name="info" type="infoType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="booster" type="boosterType">
</xs:element>
<xs:complexType name="boosterType">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="other-name" type="xs:float"/>
<xs:element name="class" type="xs:float"/>
<xs:element name="other-value" type="xs:float" maxOccurs="unbounded" />
<xs:element name="type" type="xs:float" maxOccurs="unbounded" />
<xs:element name="client-handler" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="fullname" type="xs:string"/>
<xs:element name="refid" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="member-id" type="xs:string" />
</xs:complexType>
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
<!-- Test for element with attributes but no children.
Should use valueOf.
-->
<xs:element name="info" type="infoType">
</xs:element>
<xs:complexType name="infoType">
<xs:sequence>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="type" type="xs:integer" />
<xs:attribute name="rating" type="xs:float" />
</xs:complexType>
<xs:attributeGroup name="favorites">
<xs:attribute name="fruit" />
<xs:attribute name="vegetable" />
</xs:attributeGroup>
<xs:element name="vehicle" type="vehicleType"/>
<xs:complexType name="vehicleType" abstract="true">
<xs:sequence>
<xs:element name="wheelcount" type="xs:integer" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="automobile">
<xs:complexContent>
<xs:extension base="vehicleType">
<xs:sequence>
<xs:element name="drivername" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--
-->
<xs:include namespace="http://www.generateds.com/people-part1"/>
<xs:complexType name="hot.agent">
<xs:sequence>
<xs:element name="firstname" type="xs:string"
default="empty\name"/>
<xs:element name="lastname" type="xs:string"
default="no 'last' name"/>
<xs:element name="priority" type="xs:float"/>
<xs:element name="startDate" type="xs:date"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:schema>