| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="ui-layout-patterns"
- xmlns:tns="ui-layout-patterns"
- elementFormDefault="qualified"
- version="1.3">
- <!-- Root element for pattern include files -->
- <xs:element name="patterns" type="tns:PatternsIncludeFileType"/>
- <!-- Pattern include file structure -->
- <xs:complexType name="PatternsIncludeFileType">
- <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>
- <!-- ENHANCEMENT: Version tracking for pattern files -->
- <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
- <xs:attribute name="target-platform" type="tns:PlatformEnum" default="basic"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Platform Enumeration -->
- <xs:simpleType name="PlatformEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="basic"/>
- <xs:enumeration value="winforms"/>
- <xs:enumeration value="avalonia"/>
- <xs:enumeration value="kde"/>
- <xs:enumeration value="web"/>
- <xs:enumeration value="mobile"/>
- <xs:enumeration value="mixed"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- 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"/>
- <!-- ENHANCEMENT: v1.3 features -->
- <xs:element name="validation" type="tns:ValidationRulesType" minOccurs="0"/>
- <xs:element name="accessibility" type="tns:AccessibilityRequirementsType" minOccurs="0"/>
- <xs:element name="data-binding" type="tns:DataBindingCapabilitiesType" 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:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
- <!-- ENHANCEMENT: Version tracking -->
- <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
- <xs:attribute name="deprecated" type="xs:boolean" default="false"/>
- <xs:attribute name="replaced-by" type="xs:string"/>
- </xs:complexType>
- <!-- Control Type Enumeration -->
- <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"/>
- <!-- ENHANCEMENT: New control types -->
- <xs:enumeration value="composite"/>
- <xs:enumeration value="virtual"/>
- <xs:enumeration value="utility"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Expanded Control Category Enumeration -->
- <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:enumeration value="mobile-specific"/>
- <!-- ENHANCEMENT: v1.3 new categories -->
- <xs:enumeration value="virtualization"/>
- <xs:enumeration value="ai-enhanced"/>
- <xs:enumeration value="accessibility-specialized"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Validation Rules Type -->
- <xs:complexType name="ValidationRulesType">
- <xs:sequence>
- <xs:element name="rule" type="tns:ValidationRuleType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ValidationRuleType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:ValidationTypeEnum" use="required"/>
- <xs:attribute name="pattern" type="xs:string"/>
- <xs:attribute name="message" type="xs:string"/>
- <xs:attribute name="severity" type="tns:ValidationSeverityEnum" default="error"/>
- </xs:complexType>
- <xs:simpleType name="ValidationTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="required"/>
- <xs:enumeration value="pattern"/>
- <xs:enumeration value="range"/>
- <xs:enumeration value="length"/>
- <xs:enumeration value="custom"/>
- <xs:enumeration value="email"/>
- <xs:enumeration value="url"/>
- <xs:enumeration value="number"/>
- <xs:enumeration value="date"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ValidationSeverityEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="error"/>
- <xs:enumeration value="warning"/>
- <xs:enumeration value="info"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Accessibility Requirements Type -->
- <xs:complexType name="AccessibilityRequirementsType">
- <xs:sequence>
- <xs:element name="requirement" type="tns:AccessibilityRequirementType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="AccessibilityRequirementType">
- <xs:attribute name="standard" type="tns:AccessibilityStandardEnum" use="required"/>
- <xs:attribute name="level" type="tns:AccessibilityLevelEnum" use="required"/>
- <xs:attribute name="description" type="xs:string"/>
- <xs:attribute name="required" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:simpleType name="AccessibilityStandardEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="wcag"/>
- <xs:enumeration value="section-508"/>
- <xs:enumeration value="ada"/>
- <xs:enumeration value="en-301-549"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="AccessibilityLevelEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="a"/>
- <xs:enumeration value="aa"/>
- <xs:enumeration value="aaa"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Data Binding Capabilities Type -->
- <xs:complexType name="DataBindingCapabilitiesType">
- <xs:sequence>
- <xs:element name="bindable-property" type="tns:BindablePropertyType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="supports-two-way" type="xs:boolean" default="false"/>
- <xs:attribute name="supports-commands" type="xs:boolean" default="false"/>
- <xs:attribute name="supports-validation" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="BindablePropertyType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="mode" type="tns:BindingModeEnum" default="OneWay"/>
- <xs:attribute name="default-value" type="xs:string"/>
- <xs:attribute name="dependency-property" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:simpleType name="BindingModeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="OneWay"/>
- <xs:enumeration value="TwoWay"/>
- <xs:enumeration value="OneTime"/>
- <xs:enumeration value="OneWayToSource"/>
- </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"/>
- <!-- ENHANCEMENT: v1.3 additional constraints -->
- <xs:element name="platform-constraints" type="tns:PlatformConstraintsType" minOccurs="0"/>
- <xs:element name="performance-hints" type="tns:PerformanceHintsType" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <!-- ENHANCEMENT: Platform Constraints Type -->
- <xs:complexType name="PlatformConstraintsType">
- <xs:sequence>
- <xs:element name="platform-constraint" type="tns:PlatformConstraintType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PlatformConstraintType">
- <xs:attribute name="platform" type="tns:PlatformEnum" use="required"/>
- <xs:attribute name="min-version" type="xs:string"/>
- <xs:attribute name="max-version" type="xs:string"/>
- <xs:attribute name="feature-required" type="xs:string"/>
- <xs:attribute name="alternative-control" type="xs:string"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Performance Hints Type -->
- <xs:complexType name="PerformanceHintsType">
- <xs:attribute name="virtualization-supported" type="xs:boolean" default="false"/>
- <xs:attribute name="heavy-rendering" type="xs:boolean" default="false"/>
- <xs:attribute name="memory-intensive" type="xs:boolean" default="false"/>
- <xs:attribute name="ui-thread-blocking" type="xs:boolean" default="false"/>
- <xs:attribute name="recommended-max-items" type="xs:int"/>
- </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"/>
- <!-- ENHANCEMENT: v1.3 attribute enhancements -->
- <xs:attribute name="deprecated" type="xs:boolean" default="false"/>
- <xs:attribute name="platform-specific" type="tns:PlatformEnum"/>
- <xs:attribute name="validation-pattern" type="xs:string"/>
- <xs:attribute name="category" type="xs:string"/>
- <xs:attribute name="description" type="xs:string"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Expanded Attribute Type Enumeration -->
- <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"/>
- <!-- ENHANCEMENT: v1.3 new types -->
- <xs:enumeration value="command"/>
- <xs:enumeration value="binding"/>
- <xs:enumeration value="template"/>
- <xs:enumeration value="style"/>
- <xs:enumeration value="resource"/>
- <xs:enumeration value="converter"/>
- <xs:enumeration value="validator"/>
- <xs:enumeration value="collection"/>
- <xs:enumeration value="uri"/>
- <xs:enumeration value="version"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Behavior -->
- <xs:complexType name="BehaviorType">
- <xs:sequence>
- <xs:element name="event" type="tns:EventType" maxOccurs="unbounded"/>
- <!-- ENHANCEMENT: v1.3 behavior enhancements -->
- <xs:element name="command" type="tns:CommandType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="gesture" type="tns:GestureType" minOccurs="0" 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"/>
- <!-- ENHANCEMENT: v1.3 event enhancements -->
- <xs:attribute name="async" type="xs:boolean" default="false"/>
- <xs:attribute name="cancelable" type="xs:boolean" default="false"/>
- <xs:attribute name="platform-specific" type="tns:PlatformEnum"/>
- <xs:attribute name="accessibility-event" type="xs:boolean" default="false"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Command Type -->
- <xs:complexType name="CommandType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="can-execute-property" type="xs:string"/>
- <xs:attribute name="parameter-type" type="xs:string"/>
- <xs:attribute name="async" type="xs:boolean" default="false"/>
- <xs:attribute name="description" type="xs:string"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Gesture Type -->
- <xs:complexType name="GestureType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:GestureTypeEnum" use="required"/>
- <xs:attribute name="platform-specific" type="tns:PlatformEnum"/>
- <xs:attribute name="description" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="GestureTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="tap"/>
- <xs:enumeration value="double-tap"/>
- <xs:enumeration value="long-press"/>
- <xs:enumeration value="swipe"/>
- <xs:enumeration value="pinch"/>
- <xs:enumeration value="rotate"/>
- <xs:enumeration value="pan"/>
- <xs:enumeration value="drag"/>
- <xs:enumeration value="flick"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Control Structure (simplified for patterns) -->
- <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="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="pane" type="tns:PaneType"/>
- <xs:element name="content" type="tns:ContentType"/>
- <xs:element name="grid-definitions" type="tns:GridDefinitionsType"/>
- <!-- ENHANCEMENT: v1.3 new structure types -->
- <xs:element name="templates" type="tns:TemplatesType"/>
- <xs:element name="resources" type="tns:ResourcesType"/>
- <xs:element name="animations" type="tns:AnimationsType"/>
- </xs:choice>
- </xs:complexType>
- <!-- ENHANCEMENT: Templates Type -->
- <xs:complexType name="TemplatesType">
- <xs:sequence>
- <xs:element name="template" type="tns:TemplateDefinitionType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="TemplateDefinitionType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:TemplateTypeEnum" use="required"/>
- <xs:attribute name="target-type" type="xs:string"/>
- <xs:attribute name="data-type" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="TemplateTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="control"/>
- <xs:enumeration value="data"/>
- <xs:enumeration value="item"/>
- <xs:enumeration value="header"/>
- <xs:enumeration value="footer"/>
- <xs:enumeration value="cell"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Resources Type -->
- <xs:complexType name="ResourcesType">
- <xs:sequence>
- <xs:element name="resource" type="tns:ResourceDefinitionType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ResourceDefinitionType">
- <xs:attribute name="key" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:ResourceTypeEnum" use="required"/>
- <xs:attribute name="value" type="xs:string"/>
- <xs:attribute name="source" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="ResourceTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="string"/>
- <xs:enumeration value="brush"/>
- <xs:enumeration value="color"/>
- <xs:enumeration value="font"/>
- <xs:enumeration value="image"/>
- <xs:enumeration value="style"/>
- <xs:enumeration value="template"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Animations Type -->
- <xs:complexType name="AnimationsType">
- <xs:sequence>
- <xs:element name="animation" type="tns:AnimationDefinitionType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="AnimationDefinitionType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:AnimationTypeEnum" use="required"/>
- <xs:attribute name="duration" type="xs:string" default="0.3s"/>
- <xs:attribute name="easing" type="tns:EasingEnum" default="ease"/>
- <xs:attribute name="trigger" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="AnimationTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="fade"/>
- <xs:enumeration value="slide"/>
- <xs:enumeration value="scale"/>
- <xs:enumeration value="rotate"/>
- <xs:enumeration value="transform"/>
- <xs:enumeration value="custom"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="EasingEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="linear"/>
- <xs:enumeration value="ease"/>
- <xs:enumeration value="ease-in"/>
- <xs:enumeration value="ease-out"/>
- <xs:enumeration value="ease-in-out"/>
- <xs:enumeration value="bounce"/>
- <xs:enumeration value="elastic"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- 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"/>
- <!-- ENHANCEMENT: v1.3 structure enhancements -->
- <xs:element name="composition" type="tns:CompositionType" minOccurs="0"/>
- </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:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
- <!-- ENHANCEMENT: Version tracking -->
- <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Composition Type -->
- <xs:complexType name="CompositionType">
- <xs:sequence>
- <xs:element name="component" type="tns:ComponentType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ComponentType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <xs:attribute name="multiple" type="xs:boolean" default="false"/>
- </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"/>
- <!-- ENHANCEMENT: v1.3 wireframe enhancements -->
- <xs:element name="responsive" type="tns:ResponsiveType" minOccurs="0"/>
- <xs:element name="theme-support" type="tns:ThemeSupportType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
- <!-- ENHANCEMENT: Version tracking -->
- <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Responsive Type -->
- <xs:complexType name="ResponsiveType">
- <xs:sequence>
- <xs:element name="breakpoint" type="tns:BreakpointType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BreakpointType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="min-width" type="xs:int"/>
- <xs:attribute name="max-width" type="xs:int"/>
- <xs:attribute name="orientation" type="tns:OrientationEnum"/>
- <xs:attribute name="template-override" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="OrientationEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="portrait"/>
- <xs:enumeration value="landscape"/>
- <xs:enumeration value="any"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Theme Support Type -->
- <xs:complexType name="ThemeSupportType">
- <xs:sequence>
- <xs:element name="theme-variant" type="tns:ThemeVariantType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ThemeVariantType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:ThemeTypeEnum" use="required"/>
- <xs:attribute name="resource-override" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="ThemeTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="light"/>
- <xs:enumeration value="dark"/>
- <xs:enumeration value="high-contrast"/>
- <xs:enumeration value="custom"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Template (simplified - contains mixed content for flexibility) -->
- <xs:complexType name="TemplateType" mixed="true">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
- </xs:sequence>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- Supporting Types (simplified) -->
- <xs:complexType name="ItemsType">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
- </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"/>
- <!-- ENHANCEMENT: v1.3 virtualization support -->
- <xs:attribute name="virtualization" type="xs:boolean" default="false"/>
- <xs:attribute name="lazy-loading" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="MenuItemsType">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
- </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"/>
- <!-- ENHANCEMENT: v1.3 menu enhancements -->
- <xs:attribute name="dynamic" type="xs:boolean" default="false"/>
- <xs:attribute name="context-aware" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="ColumnsType">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
- </xs:sequence>
- <xs:attribute name="min-count" type="xs:int" default="1"/>
- <xs:attribute name="max-count" type="xs:int" default="50"/>
- <!-- ENHANCEMENT: v1.3 column enhancements -->
- <xs:attribute name="auto-generate" type="xs:boolean" default="false"/>
- <xs:attribute name="reorderable" type="xs:boolean" default="true"/>
- <xs:attribute name="resizable" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="ChildrenType">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
- </xs:sequence>
- <xs:attribute name="allow-multiple" type="xs:boolean" default="true"/>
- <!-- ENHANCEMENT: v1.3 children enhancements -->
- <xs:attribute name="layout-strategy" type="tns:LayoutStrategyEnum" default="default"/>
- </xs:complexType>
- <xs:simpleType name="LayoutStrategyEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="default"/>
- <xs:enumeration value="stack"/>
- <xs:enumeration value="grid"/>
- <xs:enumeration value="flow"/>
- <xs:enumeration value="absolute"/>
- <xs:enumeration value="responsive"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="SelectedItemsType">
- <xs:attribute name="max-count" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 selection enhancements -->
- <xs:attribute name="selection-mode" type="tns:SelectionModeEnum" default="single"/>
- </xs:complexType>
- <xs:simpleType name="SelectionModeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="none"/>
- <xs:enumeration value="single"/>
- <xs:enumeration value="multiple"/>
- <xs:enumeration value="extended"/>
- <xs:enumeration value="range"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="ContextMenuType">
- <xs:attribute name="max-count" type="xs:int" default="1"/>
- <!-- ENHANCEMENT: v1.3 context menu enhancements -->
- <xs:attribute name="dynamic" type="xs:boolean" default="false"/>
- <xs:attribute name="platform-native" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="PanelType">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
- </xs:sequence>
- <xs:attribute name="required" type="xs:boolean" default="true"/>
- <!-- ENHANCEMENT: v1.3 panel enhancements -->
- <xs:attribute name="collapsible" type="xs:boolean" default="false"/>
- <xs:attribute name="resizable" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="PaneType">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
- </xs:sequence>
- <!-- ENHANCEMENT: v1.3 pane enhancements -->
- <xs:attribute name="dockable" type="xs:boolean" default="false"/>
- <xs:attribute name="floatable" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="ContentType">
- <xs:sequence>
- <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
- </xs:sequence>
- <!-- ENHANCEMENT: v1.3 content enhancements -->
- <xs:attribute name="scrollable" type="xs:boolean" default="false"/>
- <xs:attribute name="virtualized" type="xs:boolean" default="false"/>
- </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>
- <!-- ENHANCEMENT: v1.3 grid enhancements -->
- <xs:attribute name="auto-columns" type="xs:boolean" default="false"/>
- <xs:attribute name="auto-rows" type="xs:boolean" default="false"/>
- </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"/>
- <!-- ENHANCEMENT: v1.3 row enhancements -->
- <xs:attribute name="shared-size-group" type="xs:string"/>
- </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"/>
- <!-- ENHANCEMENT: v1.3 column enhancements -->
- <xs:attribute name="shared-size-group" type="xs:string"/>
- </xs:complexType>
- </xs:schema>
|