Переглянути джерело

fix ui-layout-basic-controls.xsd

Dalibor Votruba 11 місяців тому
батько
коміт
0d9ec41a3e
1 змінених файлів з 622 додано та 280 видалено
  1. 622 280
      UILayoutDefinitionFormat/ui-layout-basic-controls.xsd

+ 622 - 280
UILayoutDefinitionFormat/ui-layout-basic-controls.xsd

@@ -5,268 +5,451 @@
            elementFormDefault="qualified"
            version="1.3">
 
-  <!-- ENHANCEMENT: Control Instance Base Type with accessibility and data binding -->
+  <!-- Basic Control Instance Base Type -->
   <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"/>
-    <xs:attribute name="binding-mode" type="tns:BindingModeEnum" default="TwoWay"/>
-    <!-- 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="aria-live" type="tns:AriaLiveEnum" default="off"/>
+    <!-- Common attributes for all controls -->
+    <xs:attribute name="name" type="xs:string"/>
+    <xs:attribute name="enabled" type="xs:boolean" default="true"/>
+    <xs:attribute name="text" type="xs:string"/>
+    <xs:attribute name="visible" type="xs:boolean" default="true"/>
+    <xs:attribute name="data-source" type="xs:string"/>
+    <xs:attribute name="dock" type="tns:DockEnum" default="none"/>
+    <xs:attribute name="tooltip" type="xs:string"/>
+    <xs:attribute name="width" type="xs:int"/>
+    <xs:attribute name="height" type="xs:int"/>
+    <xs:attribute name="x" type="xs:int"/>
+    <xs:attribute name="y" type="xs:int"/>
+    <xs:attribute name="anchor" type="tns:AnchorEnum" default="none"/>
+    <xs:attribute name="margin" type="xs:string"/>
+    <xs:attribute name="padding" type="xs:string"/>
+    <xs:attribute name="background-color" type="xs:string"/>
+    <xs:attribute name="foreground-color" type="xs:string"/>
+    <xs:attribute name="font-family" type="xs:string"/>
+    <xs:attribute name="font-size" type="xs:int"/>
+    <xs:attribute name="font-style" type="tns:FontStyleEnum" default="normal"/>
     <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"/>
-    <!-- ENHANCEMENT: Version tracking -->
-    <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
-    <xs:attribute name="platform-hint" type="tns:PlatformHintEnum" default="basic"/>
     <xs:anyAttribute processContents="lax"/>
   </xs:complexType>
 
-  <!-- ENHANCEMENT: Binding Mode Enumeration -->
-  <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>
-
-  <!-- ENHANCEMENT: ARIA Live Region Enumeration -->
-  <xs:simpleType name="AriaLiveEnum">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="off"/>
-      <xs:enumeration value="polite"/>
-      <xs:enumeration value="assertive"/>
-    </xs:restriction>
-  </xs:simpleType>
-
-  <!-- ENHANCEMENT: Platform Hint Enumeration -->
-  <xs:simpleType name="PlatformHintEnum">
-    <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:restriction>
-  </xs:simpleType>
-
   <!-- 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"/>
+      <!-- Display Controls -->
+      <xs:element name="Label" type="tns:LabelType"/>
+      <xs:element name="Separator" type="tns:SeparatorType"/>
+      <xs:element name="Image" type="tns:ImageType"/>
       
-      <!-- Structure Elements -->
-      <xs:element name="FormField" type="tns:BasicControlInstanceType"/>
-      <xs:element name="slot" type="tns:SlotType"/>
+      <!-- Input Controls -->
+      <xs:element name="TextBox" type="tns:TextBoxType"/>
+      <xs:element name="ComboBox" type="tns:ComboBoxType"/>
       
-      <!-- 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"/>
+      <!-- Action Controls -->
+      <xs:element name="Button" type="tns:ButtonType"/>
       
-      <!-- ENHANCEMENT: Conditional visibility elements -->
-      <xs:element name="conditional-visibility" type="tns:ConditionalVisibilityType"/>
+      <!-- Container Controls -->
+      <xs:element name="Panel" type="tns:PanelType"/>
+      <xs:element name="PopupPanel" type="tns:PopupPanelType"/>
+      
+      <!-- Navigation Controls -->
+      <xs:element name="Menu" type="tns:MenuType"/>
+      
+      <!-- List Controls -->
+      <xs:element name="ListView" type="tns:ListViewType"/>
+      <xs:element name="TreeView" type="tns:TreeViewType"/>
+      
+      <!-- Structure Elements -->
+      <xs:element name="ListBoxItem" type="tns:ListBoxItemType"/>
+      <xs:element name="ListViewItem" type="tns:ListViewItemType"/>
+      <xs:element name="ColumnItem" type="tns:ColumnItemType"/>
+      <xs:element name="TreeNode" type="tns:TreeNodeType"/>
+      <xs:element name="MenuItem" type="tns:MenuItemType"/>
     </xs:choice>
   </xs:group>
 
-  <!-- ENHANCEMENT: Enhanced Slot Definition with v1.3 features -->
-  <xs:complexType name="SlotType">
+  <!-- DISPLAY CONTROLS -->
+  
+  <!-- Label Control Type -->
+  <xs:complexType name="LabelType">
     <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"/>
-        <!-- ENHANCEMENT: v1.3 conditional visibility -->
-        <xs:attribute name="visibility-binding" type="xs:string"/>
-        <xs:attribute name="visibility-value" type="xs:string"/>
-        <xs:attribute name="visibility-converter" type="xs:string"/>
+        <xs:attribute name="auto-size" type="xs:boolean" default="true"/>
+        <xs:attribute name="text-align" type="tns:TextAlignEnum" default="left"/>
+        <xs:attribute name="vertical-align" type="tns:VerticalAlignEnum" default="middle"/>
+        <xs:attribute name="word-wrap" type="xs:boolean" default="false"/>
+        <xs:attribute name="use-mnemonic" type="xs:boolean" default="true"/>
+        <xs:attribute name="associated-control" type="xs:string"/>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
 
-  <!-- ENHANCEMENT: Conditional Visibility Type -->
-  <xs:complexType name="ConditionalVisibilityType">
-    <xs:sequence>
-      <xs:element name="condition" type="tns:VisibilityConditionType" maxOccurs="unbounded"/>
-    </xs:sequence>
+  <!-- Separator Control Type -->
+  <xs:complexType name="SeparatorType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:attribute name="orientation" type="tns:OrientationEnum" default="horizontal"/>
+        <xs:attribute name="line-style" type="tns:LineStyleEnum" default="solid"/>
+        <xs:attribute name="line-width" type="xs:int" default="1"/>
+        <xs:attribute name="line-color" type="xs:string" default="gray"/>
+        <xs:attribute name="auto-size" type="xs:boolean" default="true"/>
+        <xs:attribute name="margin-start" type="xs:int" default="0"/>
+        <xs:attribute name="margin-end" type="xs:int" default="0"/>
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="VisibilityConditionType">
-    <xs:attribute name="property" type="xs:string" use="required"/>
-    <xs:attribute name="operator" type="tns:ComparisonOperatorEnum" use="required"/>
-    <xs:attribute name="value" type="xs:string" use="required"/>
-    <xs:attribute name="logic" type="tns:LogicOperatorEnum" default="AND"/>
+  <!-- Image Control Type -->
+  <xs:complexType name="ImageType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:attribute name="source" type="xs:string" use="required"/>
+        <xs:attribute name="source-type" type="tns:ImageSourceTypeEnum" default="file"/>
+        <xs:attribute name="size-mode" type="tns:ImageSizeModeEnum" default="normal"/>
+        <xs:attribute name="aspect-ratio" type="tns:AspectRatioEnum" default="keep"/>
+        <xs:attribute name="interpolation-mode" type="tns:InterpolationModeEnum" default="default"/>
+        <xs:attribute name="error-image" type="xs:string"/>
+        <xs:attribute name="loading-image" type="xs:string"/>
+        <xs:attribute name="border-style" type="tns:BorderStyleEnum" default="none"/>
+        <xs:attribute name="cursor-hand" type="xs:boolean" default="false"/>
+        <xs:attribute name="allow-drop" type="xs:boolean" default="false"/>
+        <xs:attribute name="cache-image" type="xs:boolean" default="true"/>
+        <xs:attribute name="async-load" type="xs:boolean" default="false"/>
+        <xs:attribute name="rotation" type="tns:RotationEnum" default="none"/>
+        <xs:attribute name="flip" type="tns:FlipEnum" default="none"/>
+        <xs:attribute name="opacity" type="xs:double" default="1.0"/>
+        <xs:attribute name="grayscale" type="xs:boolean" default="false"/>
+        <xs:attribute name="alt-text" type="xs:string"/>
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
-  <xs:simpleType name="ComparisonOperatorEnum">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Equals"/>
-      <xs:enumeration value="NotEquals"/>
-      <xs:enumeration value="GreaterThan"/>
-      <xs:enumeration value="LessThan"/>
-      <xs:enumeration value="GreaterThanOrEqual"/>
-      <xs:enumeration value="LessThanOrEqual"/>
-      <xs:enumeration value="Contains"/>
-      <xs:enumeration value="StartsWith"/>
-      <xs:enumeration value="EndsWith"/>
-      <xs:enumeration value="IsNull"/>
-      <xs:enumeration value="IsNotNull"/>
-    </xs:restriction>
-  </xs:simpleType>
-
-  <xs:simpleType name="LogicOperatorEnum">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="AND"/>
-      <xs:enumeration value="OR"/>
-      <xs:enumeration value="NOT"/>
-    </xs:restriction>
-  </xs:simpleType>
+  <!-- INPUT CONTROLS -->
+  
+  <!-- TextBox Control Type -->
+  <xs:complexType name="TextBoxType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:attribute name="max-length" type="xs:int" default="32767"/>
+        <xs:attribute name="read-only" type="xs:boolean" default="false"/>
+        <xs:attribute name="multiline" type="xs:boolean" default="false"/>
+        <xs:attribute name="password-char" type="xs:string"/>
+        <xs:attribute name="placeholder-text" type="xs:string"/>
+        <xs:attribute name="text-align" type="tns:TextAlignEnum" default="left"/>
+        <xs:attribute name="accepts-return" type="xs:boolean" default="false"/>
+        <xs:attribute name="accepts-tab" type="xs:boolean" default="false"/>
+        <xs:attribute name="word-wrap" type="xs:boolean" default="true"/>
+        <xs:attribute name="scroll-bars" type="tns:ScrollBarsEnum" default="none"/>
+        <xs:attribute name="auto-complete-mode" type="tns:AutoCompleteModeEnum" default="none"/>
+        <xs:attribute name="auto-complete-source" 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>
+  <!-- ComboBox Control Type -->
+  <xs:complexType name="ComboBoxType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:sequence>
+          <xs:element name="items" type="tns:ComboBoxItemsType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="dropdown-style" type="tns:DropdownStyleEnum" default="dropdown"/>
+        <xs:attribute name="max-dropdown-items" type="xs:int" default="8"/>
+        <xs:attribute name="selected-index" type="xs:int" default="-1"/>
+        <xs:attribute name="selected-value" type="xs:string"/>
+        <xs:attribute name="auto-complete-mode" type="tns:AutoCompleteModeEnum" default="none"/>
+        <xs:attribute name="auto-complete-source" type="xs:string"/>
+        <xs:attribute name="sorted" type="xs:boolean" default="false"/>
+      </xs:extension>
+    </xs:complexContent>
   </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:attribute name="fallback-value" type="xs:string"/>
-    <xs:attribute name="target-null-value" type="xs:string"/>
+  <!-- ACTION CONTROLS -->
+  
+  <!-- Button Control Type -->
+  <xs:complexType name="ButtonType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:attribute name="type" type="tns:ButtonTypeEnum" default="text"/>
+        <xs:attribute name="image" type="xs:string"/>
+        <xs:attribute name="image-position" type="tns:ImagePositionEnum" default="left"/>
+        <xs:attribute name="style" type="tns:ButtonStyleEnum" default="normal"/>
+        <xs:attribute name="size" type="tns:ButtonSizeEnum" default="medium"/>
+        <xs:attribute name="auto-size" type="xs:boolean" default="false"/>
+        <xs:attribute name="is-default" type="xs:boolean" default="false"/>
+        <xs:attribute name="is-cancel" type="xs:boolean" default="false"/>
+        <xs:attribute name="flat-style" type="xs:boolean" default="false"/>
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
-  <xs:simpleType name="UpdateTriggerEnum">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="PropertyChanged"/>
-      <xs:enumeration value="LostFocus"/>
-      <xs:enumeration value="Explicit"/>
-      <xs:enumeration value="SourceUpdated"/>
-    </xs:restriction>
-  </xs:simpleType>
+  <!-- CONTAINER CONTROLS -->
+  
+  <!-- Panel Control Type -->
+  <xs:complexType name="PanelType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:attribute name="border-style" type="tns:BorderStyleEnum" default="none"/>
+        <xs:attribute name="border-width" type="xs:int" default="0"/>
+        <xs:attribute name="border-color" type="xs:string" default="black"/>
+        <xs:attribute name="auto-scroll" type="xs:boolean" default="false"/>
+        <xs:attribute name="layout-type" type="tns:LayoutTypeEnum" default="absolute"/>
+        <xs:attribute name="flow-direction" type="tns:FlowDirectionEnum" default="left-to-right"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-  <!-- 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:element name="interaction-support" type="tns:InteractionSupportType" minOccurs="0"/>
-    </xs:sequence>
+  <!-- PopupPanel Control Type -->
+  <xs:complexType name="PopupPanelType">
+    <xs:complexContent>
+      <xs:extension base="tns:PanelType">
+        <xs:attribute name="popup-mode" type="tns:PopupModeEnum" default="modeless"/>
+        <xs:attribute name="auto-close" type="xs:boolean" default="true"/>
+        <xs:attribute name="close-on-escape" type="xs:boolean" default="true"/>
+        <xs:attribute name="close-on-click-outside" type="xs:boolean" default="true"/>
+        <xs:attribute name="show-close-button" type="xs:boolean" default="false"/>
+        <xs:attribute name="resizable" type="xs:boolean" default="false"/>
+        <xs:attribute name="movable" type="xs:boolean" default="false"/>
+        <xs:attribute name="fade-in" type="xs:boolean" default="false"/>
+        <xs:attribute name="fade-out" type="xs:boolean" default="false"/>
+        <xs:attribute name="animation-duration" type="xs:int" default="200"/>
+      </xs:extension>
+    </xs:complexContent>
   </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="tns:AriaLiveEnum" default="off"/>
-    <xs:attribute name="owns" type="xs:string"/>
-    <xs:attribute name="controls" type="xs:string"/>
-    <xs:attribute name="described-by" type="xs:string"/>
-    <xs:attribute name="labelled-by" type="xs:string"/>
+  <!-- NAVIGATION CONTROLS -->
+  
+  <!-- Menu Control Type -->
+  <xs:complexType name="MenuType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:sequence>
+          <xs:element name="items" type="tns:MenuItemsType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="orientation" type="tns:OrientationEnum" default="horizontal"/>
+        <xs:attribute name="show-check-margin" type="xs:boolean" default="true"/>
+        <xs:attribute name="show-image-margin" type="xs:boolean" default="true"/>
+        <xs:attribute name="right-to-left" type="xs:boolean" default="false"/>
+      </xs:extension>
+    </xs:complexContent>
   </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:attribute name="escape-key-handler" type="xs:string"/>
-    <xs:attribute name="enter-key-handler" type="xs:string"/>
+  <!-- LIST CONTROLS -->
+  
+  <!-- ListView Control Type -->
+  <xs:complexType name="ListViewType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:sequence>
+          <xs:element name="columns" type="tns:ColumnsType" minOccurs="0"/>
+          <xs:element name="items" type="tns:ListViewItemsType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="view-mode" type="tns:ListViewModeEnum" default="details"/>
+        <xs:attribute name="multi-select" type="xs:boolean" default="false"/>
+        <xs:attribute name="full-row-select" type="xs:boolean" default="false"/>
+        <xs:attribute name="grid-lines" type="xs:boolean" default="false"/>
+        <xs:attribute name="header-style" type="tns:HeaderStyleEnum" default="clickable"/>
+        <xs:attribute name="sorting" type="tns:SortingEnum" default="none"/>
+        <xs:attribute name="allow-column-reorder" type="xs:boolean" default="false"/>
+        <xs:attribute name="hover-selection" type="xs:boolean" default="false"/>
+        <xs:attribute name="hot-tracking" type="xs:boolean" default="false"/>
+        <xs:attribute name="virtual-mode" type="xs:boolean" default="false"/>
+        <xs:attribute name="virtual-list-size" type="xs:int" default="0"/>
+      </xs:extension>
+    </xs:complexContent>
   </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:attribute name="transparency-support" type="xs:boolean" default="true"/>
+  <!-- TreeView Control Type -->
+  <xs:complexType name="TreeViewType">
+    <xs:complexContent>
+      <xs:extension base="tns:BasicControlInstanceType">
+        <xs:sequence>
+          <xs:element name="nodes" type="tns:TreeNodesType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="show-lines" type="xs:boolean" default="true"/>
+        <xs:attribute name="show-plus-minus" type="xs:boolean" default="true"/>
+        <xs:attribute name="show-root-lines" type="xs:boolean" default="true"/>
+        <xs:attribute name="has-check-boxes" type="xs:boolean" default="false"/>
+        <xs:attribute name="full-row-select" type="xs:boolean" default="false"/>
+        <xs:attribute name="hot-tracking" type="xs:boolean" default="false"/>
+        <xs:attribute name="hide-selection" type="xs:boolean" default="true"/>
+        <xs:attribute name="label-edit" type="xs:boolean" default="false"/>
+        <xs:attribute name="scrollable" type="xs:boolean" default="true"/>
+        <xs:attribute name="sorted" type="xs:boolean" default="false"/>
+        <xs:attribute name="path-separator" type="xs:string" default="\"/>
+        <xs:attribute name="indent" type="xs:int" default="19"/>
+        <xs:attribute name="item-height" type="xs:int" default="16"/>
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
-  <!-- ENHANCEMENT: New Interaction Support Type -->
-  <xs:complexType name="InteractionSupportType">
-    <xs:attribute name="touch-support" type="xs:boolean" default="false"/>
-    <xs:attribute name="gesture-support" type="xs:boolean" default="false"/>
-    <xs:attribute name="voice-control" type="xs:boolean" default="false"/>
-    <xs:attribute name="eye-tracking" type="xs:boolean" default="false"/>
-    <xs:attribute name="minimum-target-size" type="xs:int" default="44"/>
+  <!-- STRUCTURE TYPES -->
+  
+  <!-- ListBoxItem Type -->
+  <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:attribute name="tooltip" type="xs:string"/>
+    <xs:attribute name="tag" type="xs:string"/>
   </xs:complexType>
 
-  <!-- ENHANCEMENT: Enhanced Supporting Types -->
-  <xs:complexType name="MenuItemsType">
+  <!-- ListViewItem Type -->
+  <xs:complexType name="ListViewItemType">
     <xs:sequence>
-      <xs:element name="menu-item" maxOccurs="unbounded">
+      <xs:element name="sub-items" minOccurs="0">
         <xs:complexType>
           <xs:sequence>
-            <xs:element name="menu-items" type="tns:MenuItemsType" minOccurs="0"/>
+            <xs:element name="sub-item" maxOccurs="unbounded">
+              <xs:complexType>
+                <xs:attribute name="text" type="xs:string" use="required"/>
+              </xs:complexType>
+            </xs:element>
           </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="command-parameter" type="xs:string"/>
-          <xs:attribute name="aria-label" type="xs:string"/>
-          <xs:attribute name="icon" type="xs:string"/>
-          <xs:attribute name="enabled" type="xs:boolean" default="true"/>
-          <xs:attribute name="visible" type="xs:boolean" default="true"/>
-          <!-- ENHANCEMENT: v1.3 conditional visibility -->
-          <xs:attribute name="visibility-binding" type="xs:string"/>
-          <xs:attribute name="enabled-binding" type="xs:string"/>
         </xs:complexType>
       </xs:element>
     </xs:sequence>
-    <xs:attribute name="orientation" type="tns:OrientationEnum" default="vertical"/>
+    <xs:attribute name="text" type="xs:string" use="required"/>
+    <xs:attribute name="value" type="xs:string"/>
+    <xs:attribute name="selected" type="xs:boolean" default="false"/>
+    <xs:attribute name="checked" type="xs:boolean" default="false"/>
+    <xs:attribute name="focused" type="xs:boolean" default="false"/>
+    <xs:attribute name="image-index" type="xs:int" default="-1"/>
+    <xs:attribute name="image-key" type="xs:string"/>
+    <xs:attribute name="state-image-index" type="xs:int" default="-1"/>
+    <xs:attribute name="group" type="xs:string"/>
+    <xs:attribute name="use-item-style-for-sub-items" type="xs:boolean" default="true"/>
+    <xs:attribute name="tag" type="xs:string"/>
+  </xs:complexType>
+
+  <!-- ColumnItem Type -->
+  <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="tns:AlignmentEnum" default="left"/>
+    <xs:attribute name="data-type" type="tns:DataTypeEnum" default="text"/>
+    <xs:attribute name="format-string" type="xs:string"/>
+    <xs:attribute name="image-index" type="xs:int" default="-1"/>
+    <xs:attribute name="tag" type="xs:string"/>
+  </xs:complexType>
+
+  <!-- TreeNode Type -->
+  <xs:complexType name="TreeNodeType">
+    <xs:sequence>
+      <xs:element name="nodes" type="tns:TreeNodesType" 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="selected" type="xs:boolean" default="false"/>
+    <xs:attribute name="checked" type="xs:boolean" default="false"/>
+    <xs:attribute name="image-index" type="xs:int" default="-1"/>
+    <xs:attribute name="image-key" type="xs:string"/>
+    <xs:attribute name="selected-image-index" type="xs:int" default="-1"/>
+    <xs:attribute name="selected-image-key" type="xs:string"/>
+    <xs:attribute name="state-image-index" type="xs:int" default="-1"/>
+    <xs:attribute name="state-image-key" type="xs:string"/>
+    <xs:attribute name="tool-tip-text" type="xs:string"/>
+    <xs:attribute name="context-menu" type="xs:string"/>
+    <xs:attribute name="tag" type="xs:string"/>
+  </xs:complexType>
+
+  <!-- MenuItem Type -->
+  <xs:complexType name="MenuItemType">
+    <xs:sequence>
+      <xs:element name="items" type="tns:MenuItemsType" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="text" type="xs:string" use="required"/>
+    <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="checkable" type="xs:boolean" default="false"/>
+    <xs:attribute name="radio-check" type="xs:boolean" default="false"/>
+    <xs:attribute name="image" type="xs:string"/>
+    <xs:attribute name="shortcut-keys" type="xs:string"/>
+    <xs:attribute name="show-shortcut" type="xs:boolean" default="true"/>
+    <xs:attribute name="merge-type" type="tns:MergeTypeEnum" default="add"/>
+    <xs:attribute name="merge-order" type="xs:int" default="0"/>
+    <xs:attribute name="separator" type="xs:boolean" default="false"/>
+    <xs:attribute name="tag" type="xs:string"/>
+  </xs:complexType>
+
+  <!-- COLLECTION TYPES -->
+  
+  <!-- ComboBox Items -->
+  <xs:complexType name="ComboBoxItemsType">
+    <xs:sequence>
+      <xs:element name="item" type="tns:ListBoxItemType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Menu Items -->
+  <xs:complexType name="MenuItemsType">
+    <xs:sequence>
+      <xs:element name="item" type="tns:MenuItemType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- ListView Items -->
+  <xs:complexType name="ListViewItemsType">
+    <xs:sequence>
+      <xs:element name="item" type="tns:ListViewItemType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Columns -->
+  <xs:complexType name="ColumnsType">
+    <xs:sequence>
+      <xs:element name="column" type="tns:ColumnItemType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Tree Nodes -->
+  <xs:complexType name="TreeNodesType">
+    <xs:sequence>
+      <xs:element name="node" type="tns:TreeNodeType" maxOccurs="unbounded"/>
+    </xs:sequence>
   </xs:complexType>
 
+  <!-- ENUMERATION TYPES -->
+  
+  <!-- Basic Enumerations -->
+  <xs:simpleType name="DockEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="left"/>
+      <xs:enumeration value="right"/>
+      <xs:enumeration value="top"/>
+      <xs:enumeration value="bottom"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="AnchorEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="left"/>
+      <xs:enumeration value="right"/>
+      <xs:enumeration value="top"/>
+      <xs:enumeration value="bottom"/>
+      <xs:enumeration value="all"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="FontStyleEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="normal"/>
+      <xs:enumeration value="italic"/>
+      <xs:enumeration value="bold"/>
+      <xs:enumeration value="bold-italic"/>
+    </xs:restriction>
+  </xs:simpleType>
+
   <xs:simpleType name="OrientationEnum">
     <xs:restriction base="xs:string">
       <xs:enumeration value="horizontal"/>
@@ -274,46 +457,20 @@
     </xs:restriction>
   </xs:simpleType>
 
-  <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="tns:DataTypeEnum" default="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:attribute name="format-string" type="xs:string"/>
-          <xs:attribute name="alignment" type="tns:AlignmentEnum" default="left"/>
-          <xs:attribute name="visible" type="xs:boolean" default="true"/>
-          <xs:attribute name="resizable" type="xs:boolean" default="true"/>
-          <xs:attribute name="frozen" type="xs:boolean" default="false"/>
-        </xs:complexType>
-      </xs:element>
-    </xs:sequence>
-  </xs:complexType>
+  <xs:simpleType name="TextAlignEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="left"/>
+      <xs:enumeration value="center"/>
+      <xs:enumeration value="right"/>
+      <xs:enumeration value="justify"/>
+    </xs:restriction>
+  </xs:simpleType>
 
-  <xs:simpleType name="DataTypeEnum">
+  <xs:simpleType name="VerticalAlignEnum">
     <xs:restriction base="xs:string">
-      <xs:enumeration value="string"/>
-      <xs:enumeration value="int"/>
-      <xs:enumeration value="decimal"/>
-      <xs:enumeration value="double"/>
-      <xs:enumeration value="float"/>
-      <xs:enumeration value="boolean"/>
-      <xs:enumeration value="date"/>
-      <xs:enumeration value="datetime"/>
-      <xs:enumeration value="timespan"/>
-      <xs:enumeration value="currency"/>
-      <xs:enumeration value="percentage"/>
-      <xs:enumeration value="image"/>
-      <xs:enumeration value="hyperlink"/>
-      <xs:enumeration value="custom"/>
+      <xs:enumeration value="top"/>
+      <xs:enumeration value="middle"/>
+      <xs:enumeration value="bottom"/>
     </xs:restriction>
   </xs:simpleType>
 
@@ -322,39 +479,224 @@
       <xs:enumeration value="left"/>
       <xs:enumeration value="center"/>
       <xs:enumeration value="right"/>
-      <xs:enumeration value="justify"/>
-      <xs:enumeration value="stretch"/>
     </xs:restriction>
   </xs:simpleType>
 
-  <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:attribute name="icon" type="xs:string"/>
-          <xs:attribute name="tooltip" type="xs:string"/>
-          <xs:attribute name="enabled" type="xs:boolean" default="true"/>
-          <xs:attribute name="visible" type="xs:boolean" default="true"/>
-          <xs:attribute name="selected" type="xs:boolean" default="false"/>
-          <xs:attribute name="group" type="xs:string"/>
-          <xs:attribute name="sort-order" type="xs:int" default="0"/>
-        </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:attribute name="selected-value-path" type="xs:string"/>
-    <xs:attribute name="group-member-path" type="xs:string"/>
-    <xs:attribute name="sort-member-path" type="xs:string"/>
-    <xs:attribute name="filter-expression" type="xs:string"/>
-  </xs:complexType>
+  <!-- Separator Specific Enumerations -->
+  <xs:simpleType name="LineStyleEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="solid"/>
+      <xs:enumeration value="dashed"/>
+      <xs:enumeration value="dotted"/>
+      <xs:enumeration value="double"/>
+      <xs:enumeration value="groove"/>
+      <xs:enumeration value="ridge"/>
+      <xs:enumeration value="inset"/>
+      <xs:enumeration value="outset"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Image Specific Enumerations -->
+  <xs:simpleType name="ImageSourceTypeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="file"/>
+      <xs:enumeration value="url"/>
+      <xs:enumeration value="resource"/>
+      <xs:enumeration value="base64"/>
+      <xs:enumeration value="stream"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ImageSizeModeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="normal"/>
+      <xs:enumeration value="stretch-image"/>
+      <xs:enumeration value="auto-size"/>
+      <xs:enumeration value="center-image"/>
+      <xs:enumeration value="zoom"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="AspectRatioEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="ignore"/>
+      <xs:enumeration value="keep"/>
+      <xs:enumeration value="keep-by-expanding"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="InterpolationModeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="default"/>
+      <xs:enumeration value="low"/>
+      <xs:enumeration value="high"/>
+      <xs:enumeration value="bilinear"/>
+      <xs:enumeration value="bicubic"/>
+      <xs:enumeration value="nearest-neighbor"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="RotationEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="rotate90"/>
+      <xs:enumeration value="rotate180"/>
+      <xs:enumeration value="rotate270"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="FlipEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="horizontal"/>
+      <xs:enumeration value="vertical"/>
+      <xs:enumeration value="both"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Other Control Specific Enumerations -->
+  <xs:simpleType name="BorderStyleEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="single"/>
+      <xs:enumeration value="raised"/>
+      <xs:enumeration value="sunken"/>
+      <xs:enumeration value="double"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ScrollBarsEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="horizontal"/>
+      <xs:enumeration value="vertical"/>
+      <xs:enumeration value="both"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="AutoCompleteModeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="suggest"/>
+      <xs:enumeration value="append"/>
+      <xs:enumeration value="suggest-append"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="DropdownStyleEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="dropdown"/>
+      <xs:enumeration value="simple"/>
+      <xs:enumeration value="dropdown-list"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ButtonTypeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="text"/>
+      <xs:enumeration value="image"/>
+      <xs:enumeration value="text-image"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ImagePositionEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="left"/>
+      <xs:enumeration value="right"/>
+      <xs:enumeration value="top"/>
+      <xs:enumeration value="bottom"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ButtonStyleEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="normal"/>
+      <xs:enumeration value="primary"/>
+      <xs:enumeration value="secondary"/>
+      <xs:enumeration value="danger"/>
+      <xs:enumeration value="success"/>
+      <xs:enumeration value="warning"/>
+      <xs:enumeration value="info"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ButtonSizeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="small"/>
+      <xs:enumeration value="medium"/>
+      <xs:enumeration value="large"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="LayoutTypeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="absolute"/>
+      <xs:enumeration value="flow"/>
+      <xs:enumeration value="stack"/>
+      <xs:enumeration value="grid"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="FlowDirectionEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="left-to-right"/>
+      <xs:enumeration value="right-to-left"/>
+      <xs:enumeration value="top-to-bottom"/>
+      <xs:enumeration value="bottom-to-top"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="PopupModeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="modal"/>
+      <xs:enumeration value="modeless"/>
+      <xs:enumeration value="tooltip"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ListViewModeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="details"/>
+      <xs:enumeration value="list"/>
+      <xs:enumeration value="large-icons"/>
+      <xs:enumeration value="small-icons"/>
+      <xs:enumeration value="tiles"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="HeaderStyleEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="clickable"/>
+      <xs:enumeration value="non-clickable"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="SortingEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none"/>
+      <xs:enumeration value="ascending"/>
+      <xs:enumeration value="descending"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="MergeTypeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="add"/>
+      <xs:enumeration value="merge-items"/>
+      <xs:enumeration value="remove"/>
+      <xs:enumeration value="replace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="DataTypeEnum">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="text"/>
+      <xs:enumeration value="number"/>
+      <xs:enumeration value="date"/>
+      <xs:enumeration value="boolean"/>
+      <xs:enumeration value="image"/>
+    </xs:restriction>
+  </xs:simpleType>
 
 </xs:schema>