| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="ui-layout-views"
- xmlns:tns="ui-layout-views"
- elementFormDefault="qualified"
- version="1.2">
- <!-- Root element for view include files -->
- <xs:element name="views" type="tns:ViewsIncludeFileType"/>
- <!-- Views include file structure -->
- <xs:complexType name="ViewsIncludeFileType">
- <xs:sequence>
- <xs:element name="view" type="tns:ViewType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- View Type -->
- <xs:complexType name="ViewType">
- <xs:sequence>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <xs:element name="metadata" type="tns:ViewMetadataType" minOccurs="0"/>
- <xs:element name="dependencies" type="tns:ViewDependenciesType" minOccurs="0"/>
- <xs:element name="data-context" type="tns:DataContextType" minOccurs="0"/>
- <xs:element name="windows" type="tns:ViewWindowsType" minOccurs="0"/>
- <xs:element name="navigation" type="tns:ViewNavigationType" minOccurs="0"/>
- <xs:element name="behaviors" type="tns:ViewBehaviorsType" minOccurs="0"/>
- <xs:element name="composed-views" type="tns:ComposedViewsType" minOccurs="0"/>
- <xs:element name="layout" type="tns:ViewLayoutType" minOccurs="0"/>
- <xs:element name="coordination" type="tns:CoordinationType" minOccurs="0"/>
- <xs:element name="communication" type="tns:CommunicationType" minOccurs="0"/>
- <xs:element name="workflow" type="tns:WorkflowType" minOccurs="0"/>
- <xs:element name="module-views" type="tns:ModuleViewsType" minOccurs="0"/>
- <xs:element name="module-dependencies" type="tns:ModuleDependenciesType" minOccurs="0"/>
- <xs:element name="main-navigation" type="tns:MainNavigationType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:ViewTypeEnum" use="required"/>
- <xs:attribute name="category" type="tns:ViewCategoryEnum" use="required"/>
- <xs:attribute name="inherits" type="xs:string"/>
- </xs:complexType>
- <!-- View Type and Category Enums -->
- <xs:simpleType name="ViewTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="business-entity"/>
- <xs:enumeration value="process-flow"/>
- <xs:enumeration value="dashboard"/>
- <xs:enumeration value="utility"/>
- <xs:enumeration value="wizard"/>
- <xs:enumeration value="composite"/>
- <xs:enumeration value="module"/>
- <xs:enumeration value="base"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ViewCategoryEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="core"/>
- <xs:enumeration value="admin"/>
- <xs:enumeration value="reporting"/>
- <xs:enumeration value="system"/>
- <xs:enumeration value="framework"/>
- <xs:enumeration value="business"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- View Metadata -->
- <xs:complexType name="ViewMetadataType">
- <xs:sequence>
- <xs:element name="model-class" type="xs:string" minOccurs="0"/>
- <xs:element name="view-model-class" type="xs:string" minOccurs="0"/>
- <xs:element name="controller-class" type="xs:string" minOccurs="0"/>
- <xs:element name="permissions" type="xs:string" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <!-- View Dependencies -->
- <xs:complexType name="ViewDependenciesType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="view-ref" type="tns:ViewRefType"/>
- <xs:element name="shared-component" type="tns:SharedComponentType"/>
- </xs:choice>
- </xs:complexType>
- <xs:complexType name="ViewRefType">
- <xs:sequence>
- <xs:element name="interaction" type="tns:InteractionType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="relationship" type="tns:RelationshipEnum" use="required"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <xs:attribute name="role" type="xs:string"/>
- <xs:attribute name="layout-slot" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="RelationshipEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="lookup"/>
- <xs:enumeration value="detail"/>
- <xs:enumeration value="reference"/>
- <xs:enumeration value="primary"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="InteractionType">
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="returns" type="xs:string"/>
- <xs:attribute name="context" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="SharedComponentType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- </xs:complexType>
- <!-- Data Context -->
- <xs:complexType name="DataContextType">
- <xs:sequence>
- <xs:element name="property" type="tns:DataPropertyType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="DataPropertyType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="scope" type="tns:DataScopeEnum" default="view"/>
- </xs:complexType>
- <xs:simpleType name="DataScopeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="view"/>
- <xs:enumeration value="shared"/>
- <xs:enumeration value="global"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- View Windows -->
- <xs:complexType name="ViewWindowsType">
- <xs:sequence>
- <xs:element name="window-ref" type="tns:WindowRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="WindowRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="role" type="tns:WindowRoleEnum" use="required"/>
- <xs:attribute name="default" type="xs:boolean" default="false"/>
- <xs:attribute name="modal" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:simpleType name="WindowRoleEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="main"/>
- <xs:enumeration value="editor"/>
- <xs:enumeration value="viewer"/>
- <xs:enumeration value="utility"/>
- <xs:enumeration value="catalog"/>
- <xs:enumeration value="step1"/>
- <xs:enumeration value="step2"/>
- <xs:enumeration value="step3"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- View Navigation -->
- <xs:complexType name="ViewNavigationType">
- <xs:sequence>
- <xs:element name="action" type="tns:NavigationActionType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="NavigationActionType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="target" type="xs:string" use="required"/>
- <xs:attribute name="context" type="xs:string"/>
- </xs:complexType>
- <!-- View Behaviors -->
- <xs:complexType name="ViewBehaviorsType">
- <xs:sequence>
- <xs:element name="behavior" type="tns:ViewBehaviorType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ViewBehaviorType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="scope" type="tns:BehaviorScopeEnum" default="view"/>
- </xs:complexType>
- <xs:simpleType name="BehaviorScopeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="view"/>
- <xs:enumeration value="global"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Composed Views -->
- <xs:complexType name="ComposedViewsType">
- <xs:sequence>
- <xs:element name="view-ref" type="tns:ViewRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- View Layout -->
- <xs:complexType name="ViewLayoutType">
- <xs:sequence>
- <xs:element name="slot" type="tns:ViewSlotType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="wireframe" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="ViewSlotType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="view" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Coordination -->
- <xs:complexType name="CoordinationType">
- <xs:sequence>
- <xs:element name="rule" type="tns:CoordinationRuleType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="CoordinationRuleType">
- <xs:attribute name="when" type="xs:string" use="required"/>
- <xs:attribute name="then" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Communication -->
- <xs:complexType name="CommunicationType">
- <xs:sequence>
- <xs:element name="publishes" type="tns:PublishesType" minOccurs="0"/>
- <xs:element name="subscribes" type="tns:SubscribesType" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PublishesType">
- <xs:sequence>
- <xs:element name="event" type="tns:PublishedEventType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="SubscribesType">
- <xs:sequence>
- <xs:element name="event" type="tns:SubscribedEventType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PublishedEventType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="data" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="SubscribedEventType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="source" type="xs:string" use="required"/>
- <xs:attribute name="handler" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Workflow -->
- <xs:complexType name="WorkflowType">
- <xs:sequence>
- <xs:element name="step" type="tns:WorkflowStepType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="WorkflowStepType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="window" type="xs:string" use="required"/>
- <xs:attribute name="next" type="xs:string"/>
- <xs:attribute name="previous" type="xs:string"/>
- </xs:complexType>
- <!-- Module Views -->
- <xs:complexType name="ModuleViewsType">
- <xs:sequence>
- <xs:element name="view-ref" type="tns:SimpleViewRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="SimpleViewRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Module Dependencies -->
- <xs:complexType name="ModuleDependenciesType">
- <xs:sequence>
- <xs:element name="module-ref" type="tns:ModuleRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ModuleRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Main Navigation -->
- <xs:complexType name="MainNavigationType">
- <xs:sequence>
- <xs:element name="nav-item" type="tns:NavItemType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="NavItemType">
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="view" type="xs:string" use="required"/>
- <xs:attribute name="action" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:schema>
|