| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="ui-layout-basic-controls"
- xmlns:tns="ui-layout-basic-controls"
- elementFormDefault="qualified"
- version="1.2">
- <!-- ENHANCEMENT: Control Instance Base Type with accessibility and data binding -->
- <xs:complexType name="BasicControlInstanceType" mixed="true">
- <xs:group ref="tns:BasicControlContentGroup" minOccurs="0" maxOccurs="unbounded"/>
- <!-- ENHANCEMENT: Data binding attributes -->
- <xs:attribute name="data-context" type="xs:string"/>
- <xs:attribute name="binding-path" type="xs:string"/>
- <xs:attribute name="command-binding" type="xs:string"/>
- <xs:attribute name="validation-rule" type="xs:string"/>
- <xs:attribute name="converter" type="xs:string"/>
- <!-- ENHANCEMENT: Accessibility attributes -->
- <xs:attribute name="aria-label" type="xs:string"/>
- <xs:attribute name="aria-description" type="xs:string"/>
- <xs:attribute name="aria-role" type="xs:string"/>
- <xs:attribute name="tab-index" type="xs:int" default="0"/>
- <xs:attribute name="access-key" type="xs:string"/>
- <xs:attribute name="high-contrast-support" type="xs:boolean" default="true"/>
- <xs:attribute name="screen-reader-text" type="xs:string"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- Basic Control Content Group -->
- <xs:group name="BasicControlContentGroup">
- <xs:choice>
- <!-- Core Basic Controls -->
- <xs:element name="Label" type="tns:BasicControlInstanceType"/>
- <xs:element name="TextBox" type="tns:BasicControlInstanceType"/>
- <xs:element name="ComboBox" type="tns:BasicControlInstanceType"/>
- <xs:element name="Button" type="tns:BasicControlInstanceType"/>
- <xs:element name="Panel" type="tns:BasicControlInstanceType"/>
- <xs:element name="PopupPanel" type="tns:BasicControlInstanceType"/>
- <xs:element name="Menu" type="tns:BasicControlInstanceType"/>
- <xs:element name="ListView" type="tns:BasicControlInstanceType"/>
- <xs:element name="TreeView" type="tns:BasicControlInstanceType"/>
- <xs:element name="TabControl" type="tns:BasicControlInstanceType"/>
- <xs:element name="ButtonBar" type="tns:BasicControlInstanceType"/>
- <xs:element name="ListBox" type="tns:BasicControlInstanceType"/>
- <xs:element name="CheckBox" type="tns:BasicControlInstanceType"/>
- <xs:element name="RadioButton" type="tns:BasicControlInstanceType"/>
- <xs:element name="Image" type="tns:BasicControlInstanceType"/>
- <xs:element name="StatusBar" type="tns:BasicControlInstanceType"/>
- <xs:element name="ToolBar" type="tns:BasicControlInstanceType"/>
- <xs:element name="SplitPanel" type="tns:BasicControlInstanceType"/>
- <xs:element name="Separator" type="tns:BasicControlInstanceType"/>
- <!-- ENHANCEMENT: Additional controls -->
- <xs:element name="ProgressBar" type="tns:BasicControlInstanceType"/>
- <xs:element name="DatePicker" type="tns:BasicControlInstanceType"/>
- <xs:element name="NumericUpDown" type="tns:BasicControlInstanceType"/>
- <xs:element name="Slider" type="tns:BasicControlInstanceType"/>
-
- <!-- Structure Elements -->
- <xs:element name="FormField" type="tns:BasicControlInstanceType"/>
- <xs:element name="slot" type="tns:SlotType"/>
-
- <!-- Supporting Elements -->
- <xs:element name="menu-items" type="tns:MenuItemsType"/>
- <xs:element name="columns" type="tns:ColumnsType"/>
- <xs:element name="items" type="tns:ItemsType"/>
- <!-- ENHANCEMENT: Data binding and accessibility elements -->
- <xs:element name="data-binding" type="tns:DataBindingDetailsType"/>
- <xs:element name="accessibility" type="tns:AccessibilityDetailsType"/>
- </xs:choice>
- </xs:group>
- <!-- ENHANCEMENT: Enhanced Slot Definition -->
- <xs:complexType name="SlotType">
- <xs:complexContent>
- <xs:extension base="tns:BasicControlInstanceType">
- <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"/>
- <!-- ENHANCEMENT: Accessibility and validation -->
- <xs:attribute name="accessibility-landmark" type="xs:string"/>
- <xs:attribute name="data-validation" type="xs:string"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <!-- ENHANCEMENT: Data Binding Details -->
- <xs:complexType name="DataBindingDetailsType">
- <xs:sequence>
- <xs:element name="binding" type="tns:BindingDetailType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BindingDetailType">
- <xs:attribute name="property" type="xs:string" use="required"/>
- <xs:attribute name="source-path" type="xs:string" use="required"/>
- <xs:attribute name="mode" type="tns:BindingModeEnum" default="TwoWay"/>
- <xs:attribute name="converter" type="xs:string"/>
- <xs:attribute name="validation-rule" type="xs:string"/>
- <xs:attribute name="update-trigger" type="tns:UpdateTriggerEnum" default="PropertyChanged"/>
- </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>
- <xs:simpleType name="UpdateTriggerEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="PropertyChanged"/>
- <xs:enumeration value="LostFocus"/>
- <xs:enumeration value="Explicit"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Accessibility Details -->
- <xs:complexType name="AccessibilityDetailsType">
- <xs:sequence>
- <xs:element name="screen-reader" type="tns:ScreenReaderDetailsType" minOccurs="0"/>
- <xs:element name="keyboard-support" type="tns:KeyboardSupportType" minOccurs="0"/>
- <xs:element name="visual-support" type="tns:VisualSupportType" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ScreenReaderDetailsType">
- <xs:attribute name="label" type="xs:string"/>
- <xs:attribute name="description" type="xs:string"/>
- <xs:attribute name="role" type="xs:string"/>
- <xs:attribute name="live-region" type="xs:string"/>
- <xs:attribute name="owns" type="xs:string"/>
- <xs:attribute name="controls" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="KeyboardSupportType">
- <xs:attribute name="tab-stop" type="xs:boolean" default="true"/>
- <xs:attribute name="tab-index" type="xs:int" default="0"/>
- <xs:attribute name="access-key" type="xs:string"/>
- <xs:attribute name="shortcut-key" type="xs:string"/>
- <xs:attribute name="focus-on-click" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="VisualSupportType">
- <xs:attribute name="high-contrast" type="xs:boolean" default="true"/>
- <xs:attribute name="font-size-scale" type="xs:boolean" default="true"/>
- <xs:attribute name="color-blind-safe" type="xs:boolean" default="true"/>
- <xs:attribute name="animation-reduce" type="xs:boolean" default="false"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Enhanced Supporting Types -->
- <xs:complexType name="MenuItemsType">
- <xs:sequence>
- <xs:element name="menu-item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <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="separator" type="xs:boolean" default="false"/>
- <!-- ENHANCEMENT: Command binding and accessibility -->
- <xs:attribute name="shortcut-key" type="xs:string"/>
- <xs:attribute name="command-binding" type="xs:string"/>
- <xs:attribute name="aria-label" type="xs:string"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ColumnsType">
- <xs:sequence>
- <xs:element name="column" maxOccurs="unbounded">
- <xs:complexType>
- <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="true"/>
- <!-- ENHANCEMENT: Data binding and accessibility -->
- <xs:attribute name="data-type" type="xs:string"/>
- <xs:attribute name="binding-path" type="xs:string"/>
- <xs:attribute name="converter" type="xs:string"/>
- <xs:attribute name="sort-member-path" type="xs:string"/>
- <xs:attribute name="aria-label" type="xs:string"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ItemsType">
- <xs:sequence>
- <xs:element name="item" maxOccurs="unbounded">
- <xs:complexType>
- <xs:attribute name="value" type="xs:string"/>
- <xs:attribute name="text" type="xs:string"/>
- <!-- ENHANCEMENT: Data binding and accessibility -->
- <xs:attribute name="data-context" type="xs:string"/>
- <xs:attribute name="command-parameter" type="xs:string"/>
- <xs:attribute name="aria-label" type="xs:string"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <!-- ENHANCEMENT: Collection-level data binding -->
- <xs:attribute name="items-source" type="xs:string"/>
- <xs:attribute name="display-member-path" type="xs:string"/>
- <xs:attribute name="value-member-path" type="xs:string"/>
- </xs:complexType>
- </xs:schema>
|