<?xml version="1.0" encoding="UTF-8"?> <!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by Kevin Rodriguez (Information Technology) --> <!--W3C Schema generated by XML Spy v4.4 U (http://www.xmlspy.com) From http://www.uiml.org/specs/uiml3/UIML3_0a_xsd.htm --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:complexType name="actionType"> <xs:choice> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="property" type="propertyType"/> <xs:element name="call" type="callType"/> <xs:element name="restructure" type="restructureType"/> </xs:choice> <xs:element name="event" type="eventType" minOccurs="0"/> </xs:sequence> <xs:sequence> <xs:element name="when-true" type="when-trueType" minOccurs="0"/> <xs:element name="when-false" type="when-falseType" minOccurs="0"/> <xs:element name="by-default" type="by-defaultType" minOccurs="0"/> </xs:sequence> </xs:choice> </xs:complexType> <xs:complexType name="behaviorType"> <xs:sequence> <xs:element name="rule" type="ruleType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="by-defaultType"> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="property" type="propertyType"/> <xs:element name="call" type="callType"/> </xs:choice> <xs:element name="restructure" type="restructureType" minOccurs="0"/> <xs:element name="op" type="opType" minOccurs="0"/> <xs:element name="equal" type="equalType" minOccurs="0"/> <xs:element name="event" type="eventType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="callType"> <xs:sequence> <xs:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:NMTOKEN"/> <xs:attribute name="class" type="xs:NMTOKEN"/> </xs:complexType> <xs:complexType name="conditionType"> <xs:choice> <xs:element name="equal" type="equalType"/> <xs:element name="event" type="eventType"/> <xs:element name="op" type="opType"/> </xs:choice> </xs:complexType> <xs:complexType name="constantType"> <xs:sequence> <xs:element name="constant" type="constantType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="model" type="xs:string"/> <xs:attribute name="value" type="xs:string"/> </xs:complexType> <xs:complexType name="contentType"> <xs:sequence> <xs:element name="constant" type="constantType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="d-classType"> <xs:sequence> <xs:element name="d-method" type="d-methodType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="d-property" type="d-propertyType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="event" type="eventType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="listener" type="listenerType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="used-in-tag" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="event"/> <xs:enumeration value="listener"/> <xs:enumeration value="part"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="maps-type" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="attribute"/> <xs:enumeration value="tag"/> <xs:enumeration value="class"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="maps-to" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="d-componentType"> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="d-method" type="d-methodType"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="maps-to" type="xs:string"/> <xs:attribute name="location" type="xs:string"/> </xs:complexType> <xs:complexType name="d-methodType"> <xs:sequence> <xs:element name="d-param" type="d-paramType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="script" type="scriptType" minOccurs="0"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="maps-to" type="xs:string" use="required"/> <xs:attribute name="return-type" type="xs:string"/> </xs:complexType> <xs:complexType name="d-paramType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="type" type="xs:string"/> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="d-propertyType"> <xs:sequence> <xs:element name="d-method" type="d-methodType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="d-param" type="d-paramType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> <xs:attribute name="maps-type" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="attribute"/> <xs:enumeration value="getMethod"/> <xs:enumeration value="setMethod"/> <xs:enumeration value="method"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="maps-to" type="xs:string" use="required"/> <xs:attribute name="return-type" type="xs:string"/> </xs:complexType> <xs:complexType name="equalType"> <xs:sequence> <xs:element name="event" type="eventType"/> <xs:choice> <xs:element name="constant" type="constantType"/> <xs:element name="property" type="propertyType"/> <xs:element name="reference" type="referenceType"/> <xs:element name="op" type="opType"/> </xs:choice> </xs:sequence> </xs:complexType> <xs:complexType name="eventType"> <xs:attribute name="name" type="xs:NMTOKEN"/> <xs:attribute name="class" type="xs:NMTOKEN"/> <xs:attribute name="part-name" type="xs:NMTOKEN"/> <xs:attribute name="part-class" type="xs:NMTOKEN"/> </xs:complexType> <xs:complexType name="headType"> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="meta" type="metaType"/> </xs:sequence> </xs:complexType> <xs:complexType name="interfaceType"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="structure" type="structureType"/> <xs:element name="style" type="styleType"/> <xs:element name="content" type="contentType"/> <xs:element name="behavior" type="behaviorType"/> </xs:choice> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="iteratorType" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="constant" type="constantType"/> <xs:element name="property" type="propertyType"/> <xs:element name="call" type="callType"/> </xs:choice> <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> </xs:complexType> <xs:complexType name="listenerType"> <xs:attribute name="class" type="xs:NMTOKEN"/> <xs:attribute name="attacher" type="xs:string"/> </xs:complexType> <xs:complexType name="logicType"> <xs:sequence> <xs:element name="d-component" type="d-componentType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="metaType"> <xs:attribute name="name" type="xs:NMTOKEN" use="required"/> <xs:attribute name="content" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="opType"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="constant" type="constantType"/> <xs:element name="property" type="propertyType"/> <xs:element name="reference" type="referenceType"/> <xs:element name="call" type="callType"/> <xs:element name="op" type="opType"/> <xs:element name="event" type="eventType"/> </xs:choice> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="paramType" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="property" type="propertyType"/> <xs:element name="reference" type="referenceType"/> <xs:element name="call" type="callType"/> <xs:element name="op" type="opType"/> <xs:element name="event" type="eventType"/> <xs:element name="constant" type="constantType"/> <xs:element name="iterator" type="iteratorType"/> </xs:choice> <xs:attribute name="name" type="xs:NMTOKEN"/> </xs:complexType> <xs:complexType name="partType"> <xs:sequence> <xs:element name="style" type="styleType" minOccurs="0"/> <xs:element name="content" type="contentType" minOccurs="0"/> <xs:element name="behavior" type="behaviorType" minOccurs="0"/> <xs:element name="part" type="partType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="repeat" type="repeatType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="class" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="where" default="last"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="first"/> <xs:enumeration value="last"/> <xs:enumeration value="before"/> <xs:enumeration value="after"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="where-part" type="xs:NMTOKEN"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="peersType"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="presentation" type="presentationType"/> <xs:element name="logic" type="logicType"/> </xs:choice> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="presentationType"> <xs:sequence> <xs:element name="d-class" type="d-classType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="base" type="xs:string" use="required"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="propertyType" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="constant" type="constantType"/> <xs:element name="property" type="propertyType"/> <xs:element name="reference" type="referenceType"/> <xs:element name="call" type="callType"/> <xs:element name="op" type="opType"/> <xs:element name="event" type="eventType"/> <xs:element name="iterator" type="iteratorType"/> </xs:choice> <xs:attribute name="name" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="part-name" type="xs:NMTOKEN"/> <xs:attribute name="part-class" type="xs:NMTOKEN"/> <xs:attribute name="event-name" type="xs:NMTOKEN"/> <xs:attribute name="event-class" type="xs:NMTOKEN"/> <xs:attribute name="call-name" type="xs:NMTOKEN"/> <xs:attribute name="call-class" type="xs:NMTOKEN"/> </xs:complexType> <xs:complexType name="referenceType"> <xs:attribute name="constant-name" type="xs:NMTOKEN"/> <xs:attribute name="url-name" type="xs:NMTOKEN"/> </xs:complexType> <xs:complexType name="repeatType"> <xs:sequence> <xs:element name="iterator" type="iteratorType"/> <xs:element name="part" type="partType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="restructureType"> <xs:sequence minOccurs="0"> <xs:element name="template" type="templateType"/> </xs:sequence> <xs:attribute name="at-part" type="xs:NMTOKEN"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> <xs:enumeration value="delete"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="where" default="last"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="first"/> <xs:enumeration value="last"/> <xs:enumeration value="before"/> <xs:enumeration value="after"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="where-part" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> </xs:complexType> <xs:complexType name="ruleType"> <xs:sequence minOccurs="0"> <xs:element name="condition" type="conditionType"/> <xs:element name="action" type="actionType"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="scriptType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="type" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="structureType"> <xs:sequence> <xs:element name="part" type="partType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="styleType"> <xs:sequence> <xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:NMTOKEN"/> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="how" default="replace"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="union"/> <xs:enumeration value="cascade"/> <xs:enumeration value="replace"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="export" default="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="hidden"/> <xs:enumeration value="optional"/> <xs:enumeration value="required"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="templateType"> <xs:choice> <xs:element name="behavior" type="behaviorType"/> <xs:element name="constant" type="constantType"/> <xs:element name="content" type="contentType"/> <xs:element name="d-class" type="d-classType"/> <xs:element name="d-component" type="d-componentType"/> <xs:element name="interface" type="interfaceType"/> <xs:element name="logic" type="logicType"/> <xs:element name="part" type="partType"/> <xs:element name="peers" type="peersType"/> <xs:element name="presentation" type="presentationType"/> <xs:element name="property" type="propertyType"/> <xs:element name="restructure" type="restructureType"/> <xs:element name="rule" type="ruleType"/> <xs:element name="script" type="scriptType"/> <xs:element name="structure" type="structureType"/> <xs:element name="style" type="styleType"/> </xs:choice> <xs:attribute name="id" type="xs:NMTOKEN"/> </xs:complexType> <xs:element name="uiml"> <xs:complexType> <xs:sequence> <xs:element name="head" type="headType" minOccurs="0"/> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="template" type="templateType"/> <xs:element name="interface" type="interfaceType"/> <xs:element name="peers" type="peersType"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="when-falseType"> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="property" type="propertyType"/> <xs:element name="call" type="callType"/> </xs:choice> <xs:element name="restructure" type="restructureType" minOccurs="0"/> <xs:element name="op" type="opType" minOccurs="0"/> <xs:element name="equal" type="equalType" minOccurs="0"/> <xs:element name="event" type="eventType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="when-trueType"> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="property" type="propertyType"/> <xs:element name="call" type="callType"/> </xs:choice> <xs:element name="restructure" type="restructureType" minOccurs="0"/> <xs:element name="op" type="opType" minOccurs="0"/> <xs:element name="equal" type="equalType" minOccurs="0"/> <xs:element name="event" type="eventType" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema>