| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="ui-layout-definition"
- xmlns:tns="ui-layout-definition"
- elementFormDefault="qualified"
- version="1.1">
- <!-- Root element -->
- <xs:element name="ui-layout-def" type="tns:UILayoutDefType"/>
- <!-- Main document structure -->
- <xs:complexType name="UILayoutDefType">
- <xs:sequence>
- <xs:element name="validation-rules" type="tns:ValidationRulesType" minOccurs="0"/>
- <xs:element name="patterns" type="tns:PatternsType"/>
- <xs:element name="views" type="tns:ViewsType" minOccurs="0"/>
- <xs:element name="window" type="tns:WindowType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="version" type="xs:string" default="1.1"/>
- </xs:complexType>
- <!-- Validation Rules -->
- <xs:complexType name="ValidationRulesType">
- <xs:sequence>
- <xs:element name="validation-include" type="tns:ValidationIncludeType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="rule" type="tns:ValidationRuleType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ValidationIncludeType">
- <xs:attribute name="src" type="xs:string" use="required"/>
- <xs:attribute name="important" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="ValidationRuleType">
- <xs:sequence>
- <xs:element name="description" type="xs:string"/>
- <xs:element name="constraint" type="xs:string" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Patterns -->
- <xs:complexType name="PatternsType">
- <xs:sequence>
- <xs:element name="pattern-include" type="tns:PatternIncludeType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="control" type="tns:ControlType"/>
- <xs:element name="structure" type="tns:StructureType"/>
- <xs:element name="wireframe" type="tns:WireframeType"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PatternIncludeType">
- <xs:attribute name="src" type="xs:string" use="required"/>
- <xs:attribute name="important" type="xs:boolean" default="false"/>
- </xs:complexType>
- <!-- Views (NEW in v1.1) -->
- <xs:complexType name="ViewsType">
- <xs:sequence>
- <xs:element name="view-include" type="tns:ViewIncludeType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="view" type="tns:ViewType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ViewIncludeType">
- <xs:attribute name="src" type="xs:string" use="required"/>
- <xs:attribute name="important" type="xs:boolean" default="false"/>
- </xs:complexType>
- <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>
- <!-- Control Definition -->
- <xs:complexType name="ControlType">
- <xs:sequence>
- <xs:element name="constraints" type="tns:ConstraintsType" minOccurs="0"/>
- <xs:element name="attributes" type="tns:AttributesType" minOccurs="0"/>
- <xs:element name="behavior" type="tns:BehaviorType" minOccurs="0"/>
- <xs:element name="structure" type="tns:ControlStructureType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:ControlTypeEnum" use="required"/>
- <xs:attribute name="category" type="tns:ControlCategoryEnum" use="required"/>
- <xs:attribute name="inherits" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="ControlTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="action"/>
- <xs:enumeration value="input"/>
- <xs:enumeration value="display"/>
- <xs:enumeration value="container"/>
- <xs:enumeration value="data"/>
- <xs:enumeration value="navigation"/>
- <xs:enumeration value="system"/>
- <xs:enumeration value="dialog"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ControlCategoryEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="basic"/>
- <xs:enumeration value="input"/>
- <xs:enumeration value="action"/>
- <xs:enumeration value="layout"/>
- <xs:enumeration value="data"/>
- <xs:enumeration value="navigation"/>
- <xs:enumeration value="composite"/>
- <xs:enumeration value="windows-specific"/>
- <xs:enumeration value="kde-specific"/>
- <xs:enumeration value="web-specific"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Constraints -->
- <xs:complexType name="ConstraintsType">
- <xs:sequence>
- <xs:element name="allowed-parents" type="xs:string" minOccurs="0"/>
- <xs:element name="allowed-children" type="xs:string" minOccurs="0"/>
- <xs:element name="container" type="xs:boolean" minOccurs="0"/>
- <xs:element name="max-children" type="xs:string" minOccurs="0"/>
- <xs:element name="requires-structure" type="xs:string" minOccurs="0"/>
- <xs:element name="required-slots" type="xs:string" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <!-- Attributes -->
- <xs:complexType name="AttributesType">
- <xs:sequence>
- <xs:element name="attribute" type="tns:AttributeType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="AttributeType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:AttributeTypeEnum" use="required"/>
- <xs:attribute name="default" type="xs:string"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <xs:attribute name="min" type="xs:int"/>
- <xs:attribute name="max" type="xs:int"/>
- <xs:attribute name="values" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="AttributeTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="string"/>
- <xs:enumeration value="int"/>
- <xs:enumeration value="bool"/>
- <xs:enumeration value="enum"/>
- <xs:enumeration value="color"/>
- <xs:enumeration value="date"/>
- <xs:enumeration value="icon"/>
- <xs:enumeration value="object"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Behavior -->
- <xs:complexType name="BehaviorType">
- <xs:sequence>
- <xs:element name="event" type="tns:EventType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="EventType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <xs:attribute name="handler-required" type="xs:boolean" default="false"/>
- <xs:attribute name="bubbles" type="xs:boolean" default="false"/>
- <xs:attribute name="parameters" type="xs:string"/>
- </xs:complexType>
- <!-- Control Structure -->
- <xs:complexType name="ControlStructureType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="items" type="tns:ItemsType"/>
- <xs:element name="menu-items" type="tns:MenuItemsType"/>
- <xs:element name="columns" type="tns:ColumnsType"/>
- <xs:element name="nodes" type="tns:NodesType"/>
- <xs:element name="tabs" type="tns:TabsType"/>
- <xs:element name="children" type="tns:ChildrenType"/>
- <xs:element name="property-categories" type="tns:PropertyCategoriesType"/>
- <xs:element name="context-menu" type="tns:ContextMenuType"/>
- <xs:element name="central-widget" type="tns:CentralWidgetType"/>
- <xs:element name="toolbars" type="tns:ToolbarsType"/>
- <xs:element name="dock-widgets" type="tns:DockWidgetsType"/>
- </xs:choice>
- </xs:complexType>
- <!-- Structure Components -->
- <xs:complexType name="ItemsType">
- <xs:sequence>
- <xs:element name="item" type="tns:ItemType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="min-count" type="xs:int" default="0"/>
- <xs:attribute name="max-count" type="xs:string" default="unlimited"/>
- </xs:complexType>
- <xs:complexType name="ItemType">
- <xs:sequence>
- <xs:element name="values" type="tns:ValuesType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="value" type="xs:string"/>
- <xs:attribute name="text" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="ValuesType">
- <xs:sequence>
- <xs:element name="value" type="tns:ValueType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ValueType">
- <xs:attribute name="column" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="MenuItemsType">
- <xs:sequence>
- <xs:element name="menu-item" type="tns:MenuItemType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="min-count" type="xs:int" default="1"/>
- <xs:attribute name="max-count" type="xs:string" default="unlimited"/>
- </xs:complexType>
- <xs:complexType name="MenuItemType">
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="action" type="xs:string"/>
- <xs:attribute name="shortcut" type="xs:string"/>
- <xs:attribute name="separator" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="ColumnsType">
- <xs:sequence>
- <xs:element name="column" type="tns:ColumnType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="min-count" type="xs:int" default="1"/>
- <xs:attribute name="max-count" type="xs:int" default="20"/>
- </xs:complexType>
- <xs:complexType name="ColumnType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="width" type="xs:string"/>
- <xs:attribute name="sortable" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="NodesType">
- <xs:sequence>
- <xs:element name="node" type="tns:NodeType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="min-count" type="xs:int" default="0"/>
- <xs:attribute name="max-count" type="xs:string" default="unlimited"/>
- <xs:attribute name="max-depth" type="xs:int" default="10"/>
- </xs:complexType>
- <xs:complexType name="NodeType">
- <xs:sequence>
- <xs:element name="nodes" type="tns:NodesType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="value" type="xs:string"/>
- <xs:attribute name="expanded" type="xs:boolean" default="false"/>
- <xs:attribute name="checked" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="TabsType">
- <xs:sequence>
- <xs:element name="tab" type="tns:TabType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="min-count" type="xs:int" default="1"/>
- <xs:attribute name="max-count" type="xs:int" default="20"/>
- </xs:complexType>
- <xs:complexType name="TabType">
- <xs:complexContent>
- <xs:extension base="tns:ControlContentType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="visible" type="xs:boolean" default="true"/>
- <xs:attribute name="enabled" type="xs:boolean" default="true"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="ChildrenType">
- <xs:attribute name="allow-multiple" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="PropertyCategoriesType">
- <xs:sequence>
- <xs:element name="category" type="tns:PropertyCategoryType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PropertyCategoryType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="display-name" type="xs:string" use="required"/>
- <xs:attribute name="expanded" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="ContextMenuType">
- <!-- Context menu structure can be defined here -->
- </xs:complexType>
- <xs:complexType name="CentralWidgetType">
- <xs:attribute name="required" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="ToolbarsType">
- <xs:attribute name="max-count" type="xs:int" default="10"/>
- </xs:complexType>
- <xs:complexType name="DockWidgetsType">
- <xs:attribute name="max-count" type="xs:int" default="20"/>
- </xs:complexType>
- <!-- Structure Definition -->
- <xs:complexType name="StructureType">
- <xs:sequence>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <xs:element name="constraints" type="tns:ConstraintsType" minOccurs="0"/>
- <xs:element name="attributes" type="tns:AttributesType" minOccurs="0"/>
- <xs:element name="template" type="tns:TemplateType"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="category" type="tns:ControlCategoryEnum" use="required"/>
- </xs:complexType>
- <!-- Wireframe Definition -->
- <xs:complexType name="WireframeType">
- <xs:sequence>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <xs:element name="template" type="tns:TemplateType"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Template -->
- <xs:complexType name="TemplateType">
- <xs:complexContent>
- <xs:extension base="tns:ControlContentType"/>
- </xs:complexContent>
- </xs:complexType>
- <!-- Window Definition -->
- <xs:complexType name="WindowType">
- <xs:sequence>
- <xs:element name="attributes" type="tns:WindowAttributesType" minOccurs="0"/>
- <xs:element name="view-properties" type="tns:ViewPropertiesType" minOccurs="0"/>
- <xs:choice>
- <xs:element name="slot-overrides" type="tns:SlotOverridesType"/>
- <xs:element name="wireframe-instance" type="tns:WireframeInstanceType"/>
- <xs:group ref="tns:ControlContentGroup"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="title" type="xs:string" use="required"/>
- <xs:attribute name="wireframe" type="xs:string"/>
- <xs:attribute name="view" type="xs:string"/>
- </xs:complexType>
- <!-- Window Attributes -->
- <xs:complexType name="WindowAttributesType">
- <xs:sequence>
- <xs:element name="attribute" maxOccurs="unbounded">
- <xs:complexType>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="value" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <!-- View Properties (NEW) -->
- <xs:complexType name="ViewPropertiesType">
- <xs:sequence>
- <xs:element name="role" type="tns:WindowRoleEnum"/>
- <xs:element name="default" type="xs:boolean" minOccurs="0"/>
- <xs:element name="modal" type="xs:boolean" minOccurs="0"/>
- <xs:element name="data-context-binding" type="xs:string" minOccurs="0"/>
- <xs:element name="parent-window" type="xs:string" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <!-- Slot Overrides -->
- <xs:complexType name="SlotOverridesType">
- <xs:sequence>
- <xs:element name="slot" type="tns:SlotOverrideType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="SlotOverrideType">
- <xs:complexContent>
- <xs:extension base="tns:ControlContentType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <!-- Wireframe Instance -->
- <xs:complexType name="WireframeInstanceType">
- <xs:sequence>
- <xs:element name="slot" type="tns:SlotOverrideType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="wireframe" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Slot Definition -->
- <xs:complexType name="SlotType">
- <xs:complexContent>
- <xs:extension base="tns:ControlContentType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="allowed-controls" type="xs:string"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <xs:attribute name="default" type="xs:boolean" default="false"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <!-- Control Content -->
- <xs:complexType name="ControlContentType" mixed="true">
- <xs:group ref="tns:ControlContentGroup" minOccurs="0" maxOccurs="unbounded"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <xs:group name="ControlContentGroup">
- <xs:choice>
- <!-- Basic Controls -->
- <xs:element name="Label" type="tns:ControlInstanceType"/>
- <xs:element name="TextBox" type="tns:ControlInstanceType"/>
- <xs:element name="ComboBox" type="tns:ControlInstanceType"/>
- <xs:element name="Button" type="tns:ControlInstanceType"/>
- <xs:element name="Panel" type="tns:ControlInstanceType"/>
- <xs:element name="PopupPanel" type="tns:ControlInstanceType"/>
- <xs:element name="Menu" type="tns:ControlInstanceType"/>
- <xs:element name="ListView" type="tns:ControlInstanceType"/>
- <xs:element name="TreeView" type="tns:ControlInstanceType"/>
- <xs:element name="TabControl" type="tns:ControlInstanceType"/>
- <xs:element name="ButtonBar" type="tns:ControlInstanceType"/>
-
- <!-- Windows-Specific Controls -->
- <xs:element name="RichTextBox" type="tns:ControlInstanceType"/>
- <xs:element name="PropertyGrid" type="tns:ControlInstanceType"/>
- <xs:element name="NotifyIcon" type="tns:ControlInstanceType"/>
-
- <!-- KDE-Specific Controls -->
- <xs:element name="KComboBox" type="tns:ControlInstanceType"/>
- <xs:element name="KMainWindow" type="tns:ControlInstanceType"/>
- <xs:element name="KFileDialog" type="tns:ControlInstanceType"/>
-
- <!-- Web-Specific Controls -->
- <xs:element name="WebBrowser" type="tns:ControlInstanceType"/>
- <xs:element name="DatePicker" type="tns:ControlInstanceType"/>
-
- <!-- Structure Elements -->
- <xs:element name="FormField" type="tns:ControlInstanceType"/>
- <xs:element name="slot" type="tns:SlotType"/>
- <xs:element name="wireframe-instance" type="tns:WireframeInstanceType"/>
- </xs:choice>
- </xs:group>
- <!-- Control Instance -->
- <xs:complexType name="ControlInstanceType">
- <xs:complexContent>
- <xs:extension base="tns:ControlContentType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="slot" type="xs:string"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:schema>
|