| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287 |
- <?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.2">
- <!-- Root element -->
- <xs:element name="ui-layout-def" type="tns:UILayoutDefType"/>
- <!-- Root element for window include files -->
- <xs:element name="windows" type="tns:WindowIncludeFileType"/>
- <!-- 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-includes" type="tns:WindowIncludesType" minOccurs="0"/>
- <xs:element name="window" type="tns:WindowType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="version" type="xs:string" default="1.2"/>
- </xs:complexType>
- <!-- Window Include Files Structure -->
- <xs:complexType name="WindowIncludeFileType">
- <xs:sequence>
- <xs:element name="window" type="tns:WindowType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- Window Includes -->
- <xs:complexType name="WindowIncludesType">
- <xs:sequence>
- <xs:element name="window-include" type="tns:WindowIncludeType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="WindowIncludeType">
- <xs:attribute name="src" type="xs:string" use="required"/>
- <xs:attribute name="important" type="xs:boolean" default="false"/>
- </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="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="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="base"/>
- <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:enumeration value="layout"/>
- <xs:enumeration value="media"/>
- <xs:enumeration value="decoration"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ControlCategoryEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="abstract"/>
- <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="winforms-basic"/>
- <xs:enumeration value="winforms-input"/>
- <xs:enumeration value="winforms-action"/>
- <xs:enumeration value="winforms-container"/>
- <xs:enumeration value="winforms-data"/>
- <xs:enumeration value="winforms-status"/>
- <xs:enumeration value="winforms-menu"/>
- <xs:enumeration value="winforms-toolbar"/>
- <xs:enumeration value="winforms-scroll"/>
- <xs:enumeration value="winforms-display"/>
- <xs:enumeration value="winforms-system"/>
- <xs:enumeration value="winforms-validation"/>
- <xs:enumeration value="winforms-dialog"/>
- <xs:enumeration value="winforms-web"/>
- <xs:enumeration value="avalonia-specific"/>
- <xs:enumeration value="avalonia-layout"/>
- <xs:enumeration value="avalonia-input"/>
- <xs:enumeration value="avalonia-display"/>
- <xs:enumeration value="avalonia-data"/>
- <xs:enumeration value="avalonia-container"/>
- <xs:enumeration value="avalonia-decoration"/>
- <xs:enumeration value="avalonia-navigation"/>
- <xs:enumeration value="avalonia-popup"/>
- <xs:enumeration value="avalonia-window"/>
- <xs:enumeration value="avalonia-media"/>
- <xs:enumeration value="avalonia-notification"/>
- <xs:enumeration value="avalonia-composite"/>
- <xs:enumeration value="avalonia-graphics"/>
- <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="datetime"/>
- <xs:enumeration value="timespan"/>
- <xs:enumeration value="icon"/>
- <xs:enumeration value="image"/>
- <xs:enumeration value="object"/>
- <xs:enumeration value="decimal"/>
- <xs:enumeration value="float"/>
- <xs:enumeration value="double"/>
- <xs:enumeration value="char"/>
- <xs:enumeration value="font"/>
- <xs:enumeration value="size"/>
- <xs:enumeration value="point"/>
- <xs:enumeration value="padding"/>
- <xs:enumeration value="thickness"/>
- <xs:enumeration value="corner-radius"/>
- <xs:enumeration value="brush"/>
- <xs:enumeration value="geometry"/>
- </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="alias" type="xs:string"/>
- <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="selected-items" type="tns:SelectedItemsType"/>
- <xs:element name="context-menu" type="tns:ContextMenuType"/>
- <xs:element name="panel1" type="tns:PanelType"/>
- <xs:element name="panel2" type="tns:PanelType"/>
- <xs:element name="panels" type="tns:PanelsType"/>
- <xs:element name="tabpages" type="tns:TabPagesType"/>
- <xs:element name="table-layout" type="tns:TableLayoutType"/>
- <xs:element name="grid-definitions" type="tns:GridDefinitionsType"/>
- <xs:element name="view" type="tns:ListViewType"/>
- <xs:element name="links" type="tns:LinksType"/>
- <xs:element name="sub-items" type="tns:SubItemsType"/>
- <xs:element name="pane" type="tns:PaneType"/>
- <xs:element name="content" type="tns:ContentType"/>
- </xs:choice>
- </xs:complexType>
- <!-- Structure Components -->
- <xs:complexType name="ItemsType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="item" type="tns:ItemType"/>
- <xs:element name="listbox-item" type="tns:ListBoxItemType"/>
- <xs:element name="listview-item" type="tns:ListViewItemType"/>
- <xs:element name="tree-view-item" type="tns:TreeViewItemType"/>
- <xs:element name="combo-box-item" type="tns:ComboBoxItemType"/>
- <xs:element name="menu-item" type="tns:MenuItemStructureType"/>
- <xs:element name="status-item" type="tns:StatusItemType"/>
- <xs:element name="toolbar-item" type="tns:ToolbarItemType"/>
- <xs:element name="ListBoxItem" type="tns:ControlInstanceType"/>
- <xs:element name="ComboBoxItem" type="tns:ControlInstanceType"/>
- <xs:element name="TreeViewItem" type="tns:ControlInstanceType"/>
- <xs:element name="TabItem" type="tns:ControlInstanceType"/>
- </xs:choice>
- <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"/>
- </xs:complexType>
- <xs:complexType name="ItemType">
- <xs:sequence>
- <xs:element name="values" type="tns:ValuesType" minOccurs="0"/>
- <xs:element name="subitems" type="tns:SubItemsType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="value" type="xs:string"/>
- <xs:attribute name="text" type="xs:string"/>
- <xs:attribute name="selected" type="xs:boolean" default="false"/>
- <xs:attribute name="enabled" type="xs:boolean" default="true"/>
- <xs:attribute name="image" type="xs:string"/>
- <xs:attribute name="imageindex" type="xs:int" default="-1"/>
- <xs:attribute name="checked" type="xs:boolean" default="false"/>
- <xs:attribute name="checkstate" type="xs:string"/>
- <xs:attribute name="tag" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="ListBoxItemType">
- <xs:attribute name="value" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="selected" type="xs:boolean" default="false"/>
- <xs:attribute name="enabled" type="xs:boolean" default="true"/>
- <xs:attribute name="image" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="ListViewItemType">
- <xs:sequence>
- <xs:element name="values" type="tns:ValuesType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="TreeViewItemType">
- <xs:sequence>
- <xs:element name="children" type="tns:TreeViewChildrenType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="value" type="xs:string" use="required"/>
- <xs:attribute name="expanded" type="xs:boolean" default="false"/>
- <xs:attribute name="selected" type="xs:boolean" default="false"/>
- <xs:attribute name="checked" type="xs:boolean" default="false"/>
- <xs:attribute name="image" type="xs:string"/>
- <xs:attribute name="enabled" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="TreeViewChildrenType">
- <xs:sequence>
- <xs:element name="tree-view-item" type="tns:TreeViewItemType" 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="ComboBoxItemType">
- <xs:attribute name="content" type="xs:string"/>
- <xs:attribute name="is-selected" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="StatusItemType">
- <xs:sequence>
- <xs:element name="control-ref" type="tns:ControlRefType"/>
- </xs:sequence>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="ToolbarItemType">
- <xs:sequence>
- <xs:element name="control-ref" type="tns:ControlRefType"/>
- </xs:sequence>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string"/>
- <xs:attribute name="tooltip" type="xs:string"/>
- <xs:attribute name="image" type="xs:string"/>
- <xs:attribute name="enabled" type="xs:boolean" default="true"/>
- <xs:attribute name="visible" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="ControlRefType">
- <xs:attribute name="allowed-types" type="xs:string" use="required"/>
- </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="SubItemsType">
- <xs:sequence>
- <xs:element name="subitem" type="tns:SubItemType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="SubItemType">
- <xs:attribute name="text" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="MenuItemsType">
- <xs:sequence>
- <xs:element name="menu-item" type="tns:MenuItemStructureType" 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:attribute name="max-depth" type="xs:int"/>
- </xs:complexType>
- <xs:complexType name="MenuItemStructureType">
- <xs:sequence>
- <xs:element name="sub-items" type="tns:MenuSubItemsType" minOccurs="0"/>
- <xs:element name="menu-items" type="tns:MenuItemsType" minOccurs="0"/>
- </xs:sequence>
- <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:attribute name="value" type="xs:string"/>
- <xs:attribute name="enabled" type="xs:boolean" default="true"/>
- <xs:attribute name="visible" type="xs:boolean" default="true"/>
- <xs:attribute name="checked" type="xs:boolean" default="false"/>
- <xs:attribute name="image" type="xs:string"/>
- <xs:attribute name="shortcutkeys" type="xs:string"/>
- <xs:attribute name="header" type="xs:string"/>
- <xs:attribute name="command" type="xs:string"/>
- <xs:attribute name="input-gesture" type="xs:string"/>
- <xs:attribute name="is-checkable" type="xs:boolean" default="false"/>
- <xs:attribute name="is-checked" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="MenuSubItemsType">
- <xs:sequence>
- <xs:element name="menu-item" type="tns:MenuItemStructureType" 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="5"/>
- </xs:complexType>
- <xs:complexType name="ColumnsType">
- <xs:sequence>
- <xs:element name="column" type="tns:ColumnType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="column-item" type="tns:ColumnItemType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="grid-view-column" type="tns:GridViewColumnType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="DataGridTextColumn" type="tns:DataGridTextColumnType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="DataGridCheckBoxColumn" type="tns:DataGridCheckBoxColumnType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="DataGridComboBoxColumn" type="tns:DataGridComboBoxColumnType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="DataGridTemplateColumn" type="tns:DataGridTemplateColumnType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="min-count" type="xs:int" default="1"/>
- <xs:attribute name="max-count" type="xs:int" default="50"/>
- </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:attribute name="headertext" type="xs:string"/>
- <xs:attribute name="datapropertyname" type="xs:string"/>
- <xs:attribute name="visible" type="xs:boolean" default="true"/>
- <xs:attribute name="readonly" type="xs:boolean" default="false"/>
- <xs:attribute name="resizable" type="xs:boolean" default="true"/>
- <xs:attribute name="sortmode" type="xs:string"/>
- <xs:attribute name="textalign" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="ColumnItemType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="width" type="xs:int" default="100"/>
- <xs:attribute name="sortable" type="xs:boolean" default="true"/>
- <xs:attribute name="visible" type="xs:boolean" default="true"/>
- <xs:attribute name="alignment" type="xs:string" default="left"/>
- <xs:attribute name="data-type" type="xs:string" default="text"/>
- </xs:complexType>
- <xs:complexType name="GridViewColumnType">
- <xs:attribute name="header" type="xs:string"/>
- <xs:attribute name="display-member-binding" type="xs:string"/>
- <xs:attribute name="width" type="xs:string" default="auto"/>
- </xs:complexType>
- <xs:complexType name="DataGridTextColumnType">
- <xs:attribute name="header" type="xs:string"/>
- <xs:attribute name="binding" type="xs:string"/>
- <xs:attribute name="width" type="xs:string" default="*"/>
- <xs:attribute name="is-read-only" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="DataGridCheckBoxColumnType">
- <xs:attribute name="header" type="xs:string"/>
- <xs:attribute name="binding" type="xs:string"/>
- <xs:attribute name="width" type="xs:string" default="auto"/>
- <xs:attribute name="is-read-only" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="DataGridComboBoxColumnType">
- <xs:attribute name="header" type="xs:string"/>
- <xs:attribute name="binding" type="xs:string"/>
- <xs:attribute name="width" type="xs:string" default="*"/>
- <xs:attribute name="is-read-only" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="DataGridTemplateColumnType">
- <xs:attribute name="header" type="xs:string"/>
- <xs:attribute name="width" type="xs:string" default="*"/>
- <xs:attribute name="is-read-only" 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="50"/>
- </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:attribute name="imageindex" type="xs:int" default="-1"/>
- <xs:attribute name="selectedimageindex" type="xs:int" default="-1"/>
- <xs:attribute name="tag" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="TabsType">
- <xs:sequence>
- <xs:element name="tab" type="tns:TabType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="TabItem" type="tns:TabItemType" minOccurs="0" 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="TabItemType">
- <xs:complexContent>
- <xs:extension base="tns:ControlContentType">
- <xs:sequence>
- <xs:element name="items" type="tns:TabItemItemsType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="header" type="xs:string"/>
- <xs:attribute name="is-selected" type="xs:boolean" default="false"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="TabItemItemsType">
- <!-- Tab content -->
- </xs:complexType>
- <xs:complexType name="TabPagesType">
- <xs:sequence>
- <xs:element name="tabpage" type="tns:TabPageType" 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="TabPageType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="tooltip" type="xs:string"/>
- <xs:attribute name="imageindex" type="xs:int" default="-1"/>
- </xs:complexType>
- <xs:complexType name="ChildrenType">
- <xs:sequence>
- <xs:element name="child" type="tns:ChildType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="allow-multiple" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="ChildType">
- <xs:attribute name="grid-row" type="xs:int"/>
- <xs:attribute name="grid-column" type="xs:int"/>
- <xs:attribute name="grid-row-span" type="xs:int" default="1"/>
- <xs:attribute name="grid-column-span" type="xs:int" default="1"/>
- <xs:attribute name="dock" type="xs:string"/>
- <xs:attribute name="canvas-left" type="xs:double"/>
- <xs:attribute name="canvas-top" type="xs:double"/>
- <xs:attribute name="canvas-right" type="xs:double"/>
- <xs:attribute name="canvas-bottom" type="xs:double"/>
- </xs:complexType>
- <xs:complexType name="SelectedItemsType">
- <xs:attribute name="max-count" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="ContextMenuType">
- <xs:attribute name="max-count" type="xs:int" default="1"/>
- </xs:complexType>
- <xs:complexType name="PanelType">
- <xs:sequence>
- <xs:element name="children" type="tns:ChildrenType"/>
- </xs:sequence>
- <xs:attribute name="required" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="PanelsType">
- <xs:sequence>
- <xs:element name="panel" type="tns:PanelRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="min-count" type="xs:int" default="2"/>
- <xs:attribute name="max-count" type="xs:int" default="2"/>
- </xs:complexType>
- <xs:complexType name="PanelRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="TableLayoutType">
- <xs:sequence>
- <xs:element name="columns" type="tns:TableColumnsType"/>
- <xs:element name="rows" type="tns:TableRowsType"/>
- <xs:element name="cells" type="tns:CellsType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="TableColumnsType">
- <xs:sequence>
- <xs:element name="column" type="tns:TableColumnType" 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="TableColumnType">
- <xs:attribute name="sizetype" type="xs:string" use="required"/>
- <xs:attribute name="size" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="TableRowsType">
- <xs:sequence>
- <xs:element name="row" type="tns:TableRowType" 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="TableRowType">
- <xs:attribute name="sizetype" type="xs:string" use="required"/>
- <xs:attribute name="size" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="CellsType">
- <xs:sequence>
- <xs:element name="cell" type="tns:CellType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="CellType">
- <xs:attribute name="column" type="xs:int" use="required"/>
- <xs:attribute name="row" type="xs:int" use="required"/>
- <xs:attribute name="columnspan" type="xs:int" default="1"/>
- <xs:attribute name="rowspan" type="xs:int" default="1"/>
- </xs:complexType>
- <xs:complexType name="GridDefinitionsType">
- <xs:sequence>
- <xs:element name="row-definitions" type="tns:RowDefinitionsType"/>
- <xs:element name="column-definitions" type="tns:ColumnDefinitionsType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="RowDefinitionsType">
- <xs:sequence>
- <xs:element name="row-definition" type="tns:RowDefinitionType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="RowDefinitionType">
- <xs:attribute name="height" type="xs:string" use="required"/>
- <xs:attribute name="min-height" type="xs:string" default="0"/>
- <xs:attribute name="max-height" type="xs:string" default="Infinity"/>
- </xs:complexType>
- <xs:complexType name="ColumnDefinitionsType">
- <xs:sequence>
- <xs:element name="column-definition" type="tns:ColumnDefinitionType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ColumnDefinitionType">
- <xs:attribute name="width" type="xs:string" use="required"/>
- <xs:attribute name="min-width" type="xs:string" default="0"/>
- <xs:attribute name="max-width" type="xs:string" default="Infinity"/>
- </xs:complexType>
- <xs:complexType name="ListViewType">
- <xs:sequence>
- <xs:element name="grid-view" type="tns:GridViewType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="GridViewType">
- <xs:sequence>
- <xs:element name="columns" type="tns:ColumnsType"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="LinksType">
- <xs:sequence>
- <xs:element name="link" type="tns:LinkType" 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="LinkType">
- <xs:attribute name="start" type="xs:string" use="required"/>
- <xs:attribute name="length" type="xs:string" use="required"/>
- <xs:attribute name="linkdata" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="PaneType">
- <xs:complexContent>
- <xs:extension base="tns:ControlContentType"/>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="ContentType">
- <xs:complexContent>
- <xs:extension base="tns:ControlContentType"/>
- </xs:complexContent>
- </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:attribute name="inherits" type="xs:string"/>
- </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>
- <!-- Abstract Controls -->
- <xs:element name="CommonControl" type="tns:ControlInstanceType"/>
-
- <!-- 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"/>
- <xs:element name="ListBox" type="tns:ControlInstanceType"/>
- <xs:element name="CheckBox" type="tns:ControlInstanceType"/>
- <xs:element name="RadioButton" type="tns:ControlInstanceType"/>
- <xs:element name="Image" type="tns:ControlInstanceType"/>
- <xs:element name="StatusBar" type="tns:ControlInstanceType"/>
- <xs:element name="ToolBar" type="tns:ControlInstanceType"/>
- <xs:element name="SplitPanel" type="tns:ControlInstanceType"/>
- <xs:element name="Separator" type="tns:ControlInstanceType"/>
-
- <!-- WinForms-Specific Controls -->
- <xs:element name="RichTextBox" type="tns:ControlInstanceType"/>
- <xs:element name="MaskedTextBox" type="tns:ControlInstanceType"/>
- <xs:element name="CheckedListBox" type="tns:ControlInstanceType"/>
- <xs:element name="GroupBox" type="tns:ControlInstanceType"/>
- <xs:element name="SplitContainer" type="tns:ControlInstanceType"/>
- <xs:element name="TableLayoutPanel" type="tns:ControlInstanceType"/>
- <xs:element name="FlowLayoutPanel" type="tns:ControlInstanceType"/>
- <xs:element name="DataGridView" type="tns:ControlInstanceType"/>
- <xs:element name="ProgressBar" type="tns:ControlInstanceType"/>
- <xs:element name="StatusStrip" type="tns:ControlInstanceType"/>
- <xs:element name="MenuStrip" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStrip" type="tns:ControlInstanceType"/>
- <xs:element name="ContextMenuStrip" type="tns:ControlInstanceType"/>
- <xs:element name="NumericUpDown" type="tns:ControlInstanceType"/>
- <xs:element name="DateTimePicker" type="tns:ControlInstanceType"/>
- <xs:element name="MonthCalendar" type="tns:ControlInstanceType"/>
- <xs:element name="TrackBar" type="tns:ControlInstanceType"/>
- <xs:element name="HScrollBar" type="tns:ControlInstanceType"/>
- <xs:element name="VScrollBar" type="tns:ControlInstanceType"/>
- <xs:element name="PictureBox" type="tns:ControlInstanceType"/>
- <xs:element name="Timer" type="tns:ControlInstanceType"/>
- <xs:element name="OpenFileDialog" type="tns:ControlInstanceType"/>
- <xs:element name="SaveFileDialog" type="tns:ControlInstanceType"/>
- <xs:element name="FolderBrowserDialog" type="tns:ControlInstanceType"/>
- <xs:element name="ColorDialog" type="tns:ControlInstanceType"/>
- <xs:element name="FontDialog" type="tns:ControlInstanceType"/>
- <xs:element name="PrintDialog" type="tns:ControlInstanceType"/>
- <xs:element name="PrintPreviewDialog" type="tns:ControlInstanceType"/>
- <xs:element name="WebBrowser" type="tns:ControlInstanceType"/>
- <xs:element name="NotifyIcon" type="tns:ControlInstanceType"/>
- <xs:element name="ErrorProvider" type="tns:ControlInstanceType"/>
- <xs:element name="ToolTip" type="tns:ControlInstanceType"/>
- <xs:element name="HelpProvider" type="tns:ControlInstanceType"/>
- <xs:element name="LinkLabel" type="tns:ControlInstanceType"/>
- <xs:element name="TabPage" type="tns:ControlInstanceType"/>
-
- <!-- Avalonia-Specific Controls -->
- <xs:element name="AvaloniaButton" type="tns:ControlInstanceType"/>
- <xs:element name="RepeatButton" type="tns:ControlInstanceType"/>
- <xs:element name="StackPanel" type="tns:ControlInstanceType"/>
- <xs:element name="Grid" type="tns:ControlInstanceType"/>
- <xs:element name="DockPanel" type="tns:ControlInstanceType"/>
- <xs:element name="WrapPanel" type="tns:ControlInstanceType"/>
- <xs:element name="Canvas" type="tns:ControlInstanceType"/>
- <xs:element name="UniformGrid" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaTextBox" type="tns:ControlInstanceType"/>
- <xs:element name="AutoCompleteBox" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaComboBox" type="tns:ControlInstanceType"/>
- <xs:element name="CalendarDatePicker" type="tns:ControlInstanceType"/>
- <xs:element name="TimePicker" type="tns:ControlInstanceType"/>
- <xs:element name="Slider" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaLabel" type="tns:ControlInstanceType"/>
- <xs:element name="TextBlock" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaListView" type="tns:ControlInstanceType"/>
- <xs:element name="DataGrid" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaTreeView" type="tns:ControlInstanceType"/>
- <xs:element name="Border" type="tns:ControlInstanceType"/>
- <xs:element name="ScrollViewer" type="tns:ControlInstanceType"/>
- <xs:element name="Expander" type="tns:ControlInstanceType"/>
- <xs:element name="SplitView" type="tns:ControlInstanceType"/>
- <xs:element name="MenuBar" type="tns:ControlInstanceType"/>
- <xs:element name="ContextMenu" type="tns:ControlInstanceType"/>
- <xs:element name="FlyoutBase" type="tns:ControlInstanceType"/>
- <xs:element name="Window" type="tns:ControlInstanceType"/>
- <xs:element name="UserControl" type="tns:ControlInstanceType"/>
- <xs:element name="MediaElement" type="tns:ControlInstanceType"/>
- <xs:element name="ColorPicker" type="tns:ControlInstanceType"/>
- <xs:element name="PathIcon" type="tns:ControlInstanceType"/>
- <xs:element name="Viewbox" type="tns:ControlInstanceType"/>
- <xs:element name="NotificationCard" type="tns:ControlInstanceType"/>
-
- <!-- Structure Elements -->
- <xs:element name="FormField" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaFormField" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaButtonBar" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaToolbar" type="tns:ControlInstanceType"/>
- <xs:element name="AvaloniaStatusBar" type="tns:ControlInstanceType"/>
- <xs:element name="slot" type="tns:SlotType"/>
-
- <!-- Item Elements -->
- <xs:element name="ListBoxItem" type="tns:ControlInstanceType"/>
- <xs:element name="ComboBoxItem" type="tns:ControlInstanceType"/>
- <xs:element name="TreeViewItem" type="tns:ControlInstanceType"/>
- <xs:element name="TabItem" type="tns:ControlInstanceType"/>
- <xs:element name="MenuItem" type="tns:ControlInstanceType"/>
- <xs:element name="NativeMenuItem" type="tns:ControlInstanceType"/>
-
- <!-- Data Grid Columns -->
- <xs:element name="DataGridColumn" type="tns:ControlInstanceType"/>
- <xs:element name="DataGridTextColumn" type="tns:ControlInstanceType"/>
- <xs:element name="DataGridCheckBoxColumn" type="tns:ControlInstanceType"/>
- <xs:element name="DataGridComboBoxColumn" type="tns:ControlInstanceType"/>
- <xs:element name="DataGridTemplateColumn" type="tns:ControlInstanceType"/>
-
- <!-- Tool Strip Items -->
- <xs:element name="ToolStripMenuItem" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripButton" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripLabel" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripSeparator" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripComboBox" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripTextBox" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripStatusLabel" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripProgressBar" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripDropDownButton" type="tns:ControlInstanceType"/>
- <xs:element name="ToolStripSplitButton" type="tns:ControlInstanceType"/>
- </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>
|