ui-layout-avalonia-controls.xsd 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. targetNamespace="ui-layout-avalonia-controls"
  4. xmlns:tns="ui-layout-avalonia-controls"
  5. xmlns:basic="ui-layout-basic-controls"
  6. elementFormDefault="qualified"
  7. version="1.3">
  8. <!-- Import basic controls -->
  9. <xs:import namespace="ui-layout-basic-controls" schemaLocation="ui-layout-basic-controls.xsd"/>
  10. <!-- Avalonia Control Instance Type -->
  11. <xs:complexType name="AvaloniaControlInstanceType" mixed="true">
  12. <xs:group ref="tns:AvaloniaControlContentGroup" minOccurs="0" maxOccurs="unbounded"/>
  13. <!-- ENHANCEMENT: v1.3 Avalonia-specific attributes -->
  14. <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
  15. <xs:attribute name="avalonia-version" type="xs:string" default="11.0"/>
  16. <xs:attribute name="theme-variant" type="tns:ThemeVariantEnum" default="default"/>
  17. <xs:attribute name="design-mode" type="xs:boolean" default="false"/>
  18. <xs:anyAttribute processContents="lax"/>
  19. </xs:complexType>
  20. <!-- ENHANCEMENT: Theme Variant Enumeration -->
  21. <xs:simpleType name="ThemeVariantEnum">
  22. <xs:restriction base="xs:string">
  23. <xs:enumeration value="default"/>
  24. <xs:enumeration value="light"/>
  25. <xs:enumeration value="dark"/>
  26. <xs:enumeration value="high-contrast"/>
  27. <xs:enumeration value="custom"/>
  28. </xs:restriction>
  29. </xs:simpleType>
  30. <!-- Avalonia Control Content Group -->
  31. <xs:group name="AvaloniaControlContentGroup">
  32. <xs:choice>
  33. <!-- Include all basic controls -->
  34. <xs:group ref="basic:BasicControlContentGroup"/>
  35. <!-- Avalonia-Specific Controls -->
  36. <xs:element name="AvaloniaButton" type="tns:AvaloniaControlInstanceType"/>
  37. <xs:element name="RepeatButton" type="tns:AvaloniaControlInstanceType"/>
  38. <xs:element name="ToggleButton" type="tns:AvaloniaControlInstanceType"/>
  39. <xs:element name="SplitButton" type="tns:AvaloniaControlInstanceType"/>
  40. <xs:element name="StackPanel" type="tns:AvaloniaControlInstanceType"/>
  41. <xs:element name="Grid" type="tns:AvaloniaControlInstanceType"/>
  42. <xs:element name="DockPanel" type="tns:AvaloniaControlInstanceType"/>
  43. <xs:element name="WrapPanel" type="tns:AvaloniaControlInstanceType"/>
  44. <xs:element name="Canvas" type="tns:AvaloniaControlInstanceType"/>
  45. <xs:element name="UniformGrid" type="tns:AvaloniaControlInstanceType"/>
  46. <xs:element name="RelativePanel" type="tns:AvaloniaControlInstanceType"/>
  47. <xs:element name="AvaloniaTextBox" type="tns:AvaloniaControlInstanceType"/>
  48. <xs:element name="NumericUpDown" type="tns:AvaloniaControlInstanceType"/>
  49. <xs:element name="AutoCompleteBox" type="tns:AvaloniaControlInstanceType"/>
  50. <xs:element name="AvaloniaComboBox" type="tns:AvaloniaControlInstanceType"/>
  51. <xs:element name="CalendarDatePicker" type="tns:AvaloniaControlInstanceType"/>
  52. <xs:element name="TimePicker" type="tns:AvaloniaControlInstanceType"/>
  53. <xs:element name="DatePickerPresenter" type="tns:AvaloniaControlInstanceType"/>
  54. <xs:element name="Slider" type="tns:AvaloniaControlInstanceType"/>
  55. <xs:element name="RangeSlider" type="tns:AvaloniaControlInstanceType"/>
  56. <xs:element name="AvaloniaLabel" type="tns:AvaloniaControlInstanceType"/>
  57. <xs:element name="TextBlock" type="tns:AvaloniaControlInstanceType"/>
  58. <xs:element name="SelectableTextBlock" type="tns:AvaloniaControlInstanceType"/>
  59. <xs:element name="ProgressBar" type="tns:AvaloniaControlInstanceType"/>
  60. <xs:element name="AvaloniaListView" type="tns:AvaloniaControlInstanceType"/>
  61. <xs:element name="DataGrid" type="tns:AvaloniaControlInstanceType"/>
  62. <xs:element name="AvaloniaTreeView" type="tns:AvaloniaControlInstanceType"/>
  63. <xs:element name="TreeDataGrid" type="tns:AvaloniaControlInstanceType"/>
  64. <xs:element name="Border" type="tns:AvaloniaControlInstanceType"/>
  65. <xs:element name="ScrollViewer" type="tns:AvaloniaControlInstanceType"/>
  66. <xs:element name="Expander" type="tns:AvaloniaControlInstanceType"/>
  67. <xs:element name="TabControl" type="tns:AvaloniaControlInstanceType"/>
  68. <xs:element name="SplitView" type="tns:AvaloniaControlInstanceType"/>
  69. <xs:element name="MenuBar" type="tns:AvaloniaControlInstanceType"/>
  70. <xs:element name="NativeMenuBar" type="tns:AvaloniaControlInstanceType"/>
  71. <xs:element name="ContextMenu" type="tns:AvaloniaControlInstanceType"/>
  72. <xs:element name="ToolTip" type="tns:AvaloniaControlInstanceType"/>
  73. <xs:element name="FlyoutBase" type="tns:AvaloniaControlInstanceType"/>
  74. <xs:element name="Flyout" type="tns:AvaloniaControlInstanceType"/>
  75. <xs:element name="MenuFlyout" type="tns:AvaloniaControlInstanceType"/>
  76. <xs:element name="Window" type="tns:AvaloniaControlInstanceType"/>
  77. <xs:element name="UserControl" type="tns:AvaloniaControlInstanceType"/>
  78. <xs:element name="ContentControl" type="tns:AvaloniaControlInstanceType"/>
  79. <xs:element name="HeaderedContentControl" type="tns:AvaloniaControlInstanceType"/>
  80. <xs:element name="MediaElement" type="tns:AvaloniaControlInstanceType"/>
  81. <xs:element name="MaskedTextBox" type="tns:AvaloniaControlInstanceType"/>
  82. <xs:element name="ColorPicker" type="tns:AvaloniaControlInstanceType"/>
  83. <xs:element name="PathIcon" type="tns:AvaloniaControlInstanceType"/>
  84. <xs:element name="Viewbox" type="tns:AvaloniaControlInstanceType"/>
  85. <xs:element name="NotificationCard" type="tns:AvaloniaControlInstanceType"/>
  86. <!-- ENHANCEMENT: v1.3 new Avalonia controls -->
  87. <xs:element name="InfoBar" type="tns:AvaloniaControlInstanceType"/>
  88. <xs:element name="TeachingTip" type="tns:AvaloniaControlInstanceType"/>
  89. <xs:element name="ToggleSwitch" type="tns:AvaloniaControlInstanceType"/>
  90. <xs:element name="Rating" type="tns:AvaloniaControlInstanceType"/>
  91. <xs:element name="RefreshContainer" type="tns:AvaloniaControlInstanceType"/>
  92. <xs:element name="SwipeView" type="tns:AvaloniaControlInstanceType"/>
  93. <xs:element name="NavigationView" type="tns:AvaloniaControlInstanceType"/>
  94. <xs:element name="Breadcrumb" type="tns:AvaloniaControlInstanceType"/>
  95. <xs:element name="PullToRefresh" type="tns:AvaloniaControlInstanceType"/>
  96. <xs:element name="ItemsRepeater" type="tns:AvaloniaControlInstanceType"/>
  97. <xs:element name="VirtualizingStackPanel" type="tns:AvaloniaControlInstanceType"/>
  98. <xs:element name="Carousel" type="tns:AvaloniaControlInstanceType"/>
  99. <xs:element name="FlipView" type="tns:AvaloniaControlInstanceType"/>
  100. <xs:element name="SmoothScrollViewer" type="tns:AvaloniaControlInstanceType"/>
  101. <xs:element name="Popup" type="tns:AvaloniaControlInstanceType"/>
  102. <xs:element name="OverlayPopupHost" type="tns:AvaloniaControlInstanceType"/>
  103. <!-- Avalonia Graphics and Drawing -->
  104. <xs:element name="Canvas" type="tns:AvaloniaControlInstanceType"/>
  105. <xs:element name="Shapes" type="tns:ShapesType"/>
  106. <xs:element name="Geometry" type="tns:GeometryType"/>
  107. <xs:element name="Transform" type="tns:TransformType"/>
  108. <xs:element name="Animation" type="tns:AnimationType"/>
  109. <!-- Avalonia Structure Elements -->
  110. <xs:element name="AvaloniaFormField" type="tns:AvaloniaControlInstanceType"/>
  111. <xs:element name="AvaloniaButtonBar" type="tns:AvaloniaControlInstanceType"/>
  112. <xs:element name="AvaloniaToolbar" type="tns:AvaloniaControlInstanceType"/>
  113. <xs:element name="AvaloniaStatusBar" type="tns:AvaloniaControlInstanceType"/>
  114. <!-- Avalonia Item Elements -->
  115. <xs:element name="ListBoxItem" type="tns:AvaloniaControlInstanceType"/>
  116. <xs:element name="ComboBoxItem" type="tns:AvaloniaControlInstanceType"/>
  117. <xs:element name="TreeViewItem" type="tns:AvaloniaControlInstanceType"/>
  118. <xs:element name="TabItem" type="tns:AvaloniaControlInstanceType"/>
  119. <xs:element name="MenuItem" type="tns:AvaloniaControlInstanceType"/>
  120. <xs:element name="NativeMenuItem" type="tns:AvaloniaControlInstanceType"/>
  121. <xs:element name="NavigationViewItem" type="tns:AvaloniaControlInstanceType"/>
  122. <xs:element name="BreadcrumbItem" type="tns:AvaloniaControlInstanceType"/>
  123. <!-- Avalonia Data Grid Columns -->
  124. <xs:element name="DataGridColumn" type="tns:AvaloniaControlInstanceType"/>
  125. <xs:element name="DataGridTextColumn" type="tns:AvaloniaControlInstanceType"/>
  126. <xs:element name="DataGridCheckBoxColumn" type="tns:AvaloniaControlInstanceType"/>
  127. <xs:element name="DataGridComboBoxColumn" type="tns:AvaloniaControlInstanceType"/>
  128. <xs:element name="DataGridTemplateColumn" type="tns:AvaloniaControlInstanceType"/>
  129. <!-- Avalonia-specific supporting elements -->
  130. <xs:element name="grid-definitions" type="tns:GridDefinitionsType"/>
  131. <xs:element name="tabs" type="tns:TabsType"/>
  132. <xs:element name="pane" type="tns:PaneType"/>
  133. <xs:element name="content" type="tns:ContentType"/>
  134. <xs:element name="resources" type="tns:ResourcesType"/>
  135. <xs:element name="styles" type="tns:StylesType"/>
  136. <xs:element name="triggers" type="tns:TriggersType"/>
  137. <!-- ENHANCEMENT: v1.3 new supporting elements -->
  138. <xs:element name="gestures" type="tns:GesturesType"/>
  139. <xs:element name="interactions" type="tns:InteractionsType"/>
  140. <xs:element name="behaviors" type="tns:BehaviorsType"/>
  141. </xs:choice>
  142. </xs:group>
  143. <!-- ENHANCEMENT: Shapes Type -->
  144. <xs:complexType name="ShapesType">
  145. <xs:choice maxOccurs="unbounded">
  146. <xs:element name="Rectangle" type="tns:AvaloniaControlInstanceType"/>
  147. <xs:element name="Ellipse" type="tns:AvaloniaControlInstanceType"/>
  148. <xs:element name="Line" type="tns:AvaloniaControlInstanceType"/>
  149. <xs:element name="Polyline" type="tns:AvaloniaControlInstanceType"/>
  150. <xs:element name="Polygon" type="tns:AvaloniaControlInstanceType"/>
  151. <xs:element name="Path" type="tns:AvaloniaControlInstanceType"/>
  152. </xs:choice>
  153. </xs:complexType>
  154. <!-- ENHANCEMENT: Geometry Type -->
  155. <xs:complexType name="GeometryType">
  156. <xs:choice>
  157. <xs:element name="RectangleGeometry" type="tns:RectangleGeometryType"/>
  158. <xs:element name="EllipseGeometry" type="tns:EllipseGeometryType"/>
  159. <xs:element name="LineGeometry" type="tns:LineGeometryType"/>
  160. <xs:element name="PathGeometry" type="tns:PathGeometryType"/>
  161. <xs:element name="CombinedGeometry" type="tns:CombinedGeometryType"/>
  162. </xs:choice>
  163. </xs:complexType>
  164. <xs:complexType name="RectangleGeometryType">
  165. <xs:attribute name="rect" type="xs:string" use="required"/>
  166. <xs:attribute name="radius-x" type="xs:double" default="0"/>
  167. <xs:attribute name="radius-y" type="xs:double" default="0"/>
  168. </xs:complexType>
  169. <xs:complexType name="EllipseGeometryType">
  170. <xs:attribute name="center" type="xs:string" use="required"/>
  171. <xs:attribute name="radius-x" type="xs:double" use="required"/>
  172. <xs:attribute name="radius-y" type="xs:double" use="required"/>
  173. </xs:complexType>
  174. <xs:complexType name="LineGeometryType">
  175. <xs:attribute name="start-point" type="xs:string" use="required"/>
  176. <xs:attribute name="end-point" type="xs:string" use="required"/>
  177. </xs:complexType>
  178. <xs:complexType name="PathGeometryType">
  179. <xs:attribute name="data" type="xs:string" use="required"/>
  180. <xs:attribute name="fill-rule" type="tns:FillRuleEnum" default="EvenOdd"/>
  181. </xs:complexType>
  182. <xs:complexType name="CombinedGeometryType">
  183. <xs:attribute name="geometry1" type="xs:string" use="required"/>
  184. <xs:attribute name="geometry2" type="xs:string" use="required"/>
  185. <xs:attribute name="combine-mode" type="tns:CombineModeEnum" use="required"/>
  186. </xs:complexType>
  187. <xs:simpleType name="FillRuleEnum">
  188. <xs:restriction base="xs:string">
  189. <xs:enumeration value="EvenOdd"/>
  190. <xs:enumeration value="NonZero"/>
  191. </xs:restriction>
  192. </xs:simpleType>
  193. <xs:simpleType name="CombineModeEnum">
  194. <xs:restriction base="xs:string">
  195. <xs:enumeration value="Union"/>
  196. <xs:enumeration value="Intersect"/>
  197. <xs:enumeration value="Xor"/>
  198. <xs:enumeration value="Exclude"/>
  199. </xs:restriction>
  200. </xs:simpleType>
  201. <!-- ENHANCEMENT: Transform Type -->
  202. <xs:complexType name="TransformType">
  203. <xs:choice>
  204. <xs:element name="TranslateTransform" type="tns:TranslateTransformType"/>
  205. <xs:element name="RotateTransform" type="tns:RotateTransformType"/>
  206. <xs:element name="ScaleTransform" type="tns:ScaleTransformType"/>
  207. <xs:element name="SkewTransform" type="tns:SkewTransformType"/>
  208. <xs:element name="MatrixTransform" type="tns:MatrixTransformType"/>
  209. <xs:element name="TransformGroup" type="tns:TransformGroupType"/>
  210. </xs:choice>
  211. </xs:complexType>
  212. <xs:complexType name="TranslateTransformType">
  213. <xs:attribute name="x" type="xs:double" default="0"/>
  214. <xs:attribute name="y" type="xs:double" default="0"/>
  215. </xs:complexType>
  216. <xs:complexType name="RotateTransformType">
  217. <xs:attribute name="angle" type="xs:double" use="required"/>
  218. <xs:attribute name="center-x" type="xs:double" default="0"/>
  219. <xs:attribute name="center-y" type="xs:double" default="0"/>
  220. </xs:complexType>
  221. <xs:complexType name="ScaleTransformType">
  222. <xs:attribute name="scale-x" type="xs:double" default="1"/>
  223. <xs:attribute name="scale-y" type="xs:double" default="1"/>
  224. <xs:attribute name="center-x" type="xs:double" default="0"/>
  225. <xs:attribute name="center-y" type="xs:double" default="0"/>
  226. </xs:complexType>
  227. <xs:complexType name="SkewTransformType">
  228. <xs:attribute name="angle-x" type="xs:double" default="0"/>
  229. <xs:attribute name="angle-y" type="xs:double" default="0"/>
  230. <xs:attribute name="center-x" type="xs:double" default="0"/>
  231. <xs:attribute name="center-y" type="xs:double" default="0"/>
  232. </xs:complexType>
  233. <xs:complexType name="MatrixTransformType">
  234. <xs:attribute name="matrix" type="xs:string" use="required"/>
  235. </xs:complexType>
  236. <xs:complexType name="TransformGroupType">
  237. <xs:sequence>
  238. <xs:element name="Transform" type="tns:TransformType" maxOccurs="unbounded"/>
  239. </xs:sequence>
  240. </xs:complexType>
  241. <!-- ENHANCEMENT: Animation Type -->
  242. <xs:complexType name="AnimationType">
  243. <xs:choice maxOccurs="unbounded">
  244. <xs:element name="DoubleAnimation" type="tns:DoubleAnimationType"/>
  245. <xs:element name="ColorAnimation" type="tns:ColorAnimationType"/>
  246. <xs:element name="PointAnimation" type="tns:PointAnimationType"/>
  247. <xs:element name="ThicknessAnimation" type="tns:ThicknessAnimationType"/>
  248. <xs:element name="Storyboard" type="tns:StoryboardType"/>
  249. </xs:choice>
  250. </xs:complexType>
  251. <xs:complexType name="DoubleAnimationType">
  252. <xs:attribute name="target-property" type="xs:string" use="required"/>
  253. <xs:attribute name="from" type="xs:double"/>
  254. <xs:attribute name="to" type="xs:double"/>
  255. <xs:attribute name="duration" type="xs:string" use="required"/>
  256. <xs:attribute name="easing" type="tns:EasingEnum" default="Linear"/>
  257. <xs:attribute name="auto-reverse" type="xs:boolean" default="false"/>
  258. <xs:attribute name="repeat-count" type="xs:string" default="1"/>
  259. </xs:complexType>
  260. <xs:complexType name="ColorAnimationType">
  261. <xs:attribute name="target-property" type="xs:string" use="required"/>
  262. <xs:attribute name="from" type="xs:string"/>
  263. <xs:attribute name="to" type="xs:string"/>
  264. <xs:attribute name="duration" type="xs:string" use="required"/>
  265. <xs:attribute name="easing" type="tns:EasingEnum" default="Linear"/>
  266. <xs:attribute name="auto-reverse" type="xs:boolean" default="false"/>
  267. <xs:attribute name="repeat-count" type="xs:string" default="1"/>
  268. </xs:complexType>
  269. <xs:complexType name="PointAnimationType">
  270. <xs:attribute name="target-property" type="xs:string" use="required"/>
  271. <xs:attribute name="from" type="xs:string"/>
  272. <xs:attribute name="to" type="xs:string"/>
  273. <xs:attribute name="duration" type="xs:string" use="required"/>
  274. <xs:attribute name="easing" type="tns:EasingEnum" default="Linear"/>
  275. </xs:complexType>
  276. <xs:complexType name="ThicknessAnimationType">
  277. <xs:attribute name="target-property" type="xs:string" use="required"/>
  278. <xs:attribute name="from" type="xs:string"/>
  279. <xs:attribute name="to" type="xs:string"/>
  280. <xs:attribute name="duration" type="xs:string" use="required"/>
  281. <xs:attribute name="easing" type="tns:EasingEnum" default="Linear"/>
  282. </xs:complexType>
  283. <xs:complexType name="StoryboardType">
  284. <xs:sequence>
  285. <xs:element name="Animation" type="tns:AnimationType" maxOccurs="unbounded"/>
  286. </xs:sequence>
  287. <xs:attribute name="name" type="xs:string"/>
  288. <xs:attribute name="target" type="xs:string"/>
  289. </xs:complexType>
  290. <xs:simpleType name="EasingEnum">
  291. <xs:restriction base="xs:string">
  292. <xs:enumeration value="Linear"/>
  293. <xs:enumeration value="QuadraticEaseIn"/>
  294. <xs:enumeration value="QuadraticEaseOut"/>
  295. <xs:enumeration value="QuadraticEaseInOut"/>
  296. <xs:enumeration value="CubicEaseIn"/>
  297. <xs:enumeration value="CubicEaseOut"/>
  298. <xs:enumeration value="CubicEaseInOut"/>
  299. <xs:enumeration value="BackEaseIn"/>
  300. <xs:enumeration value="BackEaseOut"/>
  301. <xs:enumeration value="BackEaseInOut"/>
  302. <xs:enumeration value="BounceEaseIn"/>
  303. <xs:enumeration value="BounceEaseOut"/>
  304. <xs:enumeration value="BounceEaseInOut"/>
  305. <xs:enumeration value="ElasticEaseIn"/>
  306. <xs:enumeration value="ElasticEaseOut"/>
  307. <xs:enumeration value="ElasticEaseInOut"/>
  308. </xs:restriction>
  309. </xs:simpleType>
  310. <!-- ENHANCEMENT: Gestures Type -->
  311. <xs:complexType name="GesturesType">
  312. <xs:sequence>
  313. <xs:element name="gesture" type="tns:GestureType" maxOccurs="unbounded"/>
  314. </xs:sequence>
  315. </xs:complexType>
  316. <xs:complexType name="GestureType">
  317. <xs:attribute name="type" type="tns:GestureTypeEnum" use="required"/>
  318. <xs:attribute name="handler" type="xs:string" use="required"/>
  319. <xs:attribute name="parameter" type="xs:string"/>
  320. </xs:complexType>
  321. <xs:simpleType name="GestureTypeEnum">
  322. <xs:restriction base="xs:string">
  323. <xs:enumeration value="Tap"/>
  324. <xs:enumeration value="DoubleTap"/>
  325. <xs:enumeration value="RightTap"/>
  326. <xs:enumeration value="Hold"/>
  327. <xs:enumeration value="Swipe"/>
  328. <xs:enumeration value="Pan"/>
  329. <xs:enumeration value="Pinch"/>
  330. <xs:enumeration value="Rotate"/>
  331. <xs:enumeration value="Drag"/>
  332. <xs:enumeration value="Flick"/>
  333. </xs:restriction>
  334. </xs:simpleType>
  335. <!-- ENHANCEMENT: Interactions Type -->
  336. <xs:complexType name="InteractionsType">
  337. <xs:sequence>
  338. <xs:element name="interaction" type="tns:InteractionType" maxOccurs="unbounded"/>
  339. </xs:sequence>
  340. </xs:complexType>
  341. <xs:complexType name="InteractionType">
  342. <xs:attribute name="type" type="tns:InteractionTypeEnum" use="required"/>
  343. <xs:attribute name="target" type="xs:string"/>
  344. <xs:attribute name="command" type="xs:string"/>
  345. <xs:attribute name="parameter" type="xs:string"/>
  346. </xs:complexType>
  347. <xs:simpleType name="InteractionTypeEnum">
  348. <xs:restriction base="xs:string">
  349. <xs:enumeration value="EventTrigger"/>
  350. <xs:enumeration value="PropertyChangedTrigger"/>
  351. <xs:enumeration value="DataTrigger"/>
  352. <xs:enumeration value="CallMethodAction"/>
  353. <xs:enumeration value="InvokeCommandAction"/>
  354. <xs:enumeration value="ChangePropertyAction"/>
  355. </xs:restriction>
  356. </xs:simpleType>
  357. <!-- ENHANCEMENT: Behaviors Type -->
  358. <xs:complexType name="BehaviorsType">
  359. <xs:sequence>
  360. <xs:element name="behavior" type="tns:BehaviorType" maxOccurs="unbounded"/>
  361. </xs:sequence>
  362. </xs:complexType>
  363. <xs:complexType name="BehaviorType">
  364. <xs:attribute name="type" type="tns:BehaviorTypeEnum" use="required"/>
  365. <xs:attribute name="target" type="xs:string"/>
  366. <xs:attribute name="property" type="xs:string"/>
  367. <xs:attribute name="value" type="xs:string"/>
  368. </xs:complexType>
  369. <xs:simpleType name="BehaviorTypeEnum">
  370. <xs:restriction base="xs:string">
  371. <xs:enumeration value="DragBehavior"/>
  372. <xs:enumeration value="DropBehavior"/>
  373. <xs:enumeration value="SelectionBehavior"/>
  374. <xs:enumeration value="ValidationBehavior"/>
  375. <xs:enumeration value="AnimationBehavior"/>
  376. <xs:enumeration value="FocusBehavior"/>
  377. <xs:enumeration value="ScrollBehavior"/>
  378. </xs:restriction>
  379. </xs:simpleType>
  380. <!-- Avalonia-specific supporting types -->
  381. <xs:complexType name="GridDefinitionsType">
  382. <xs:sequence>
  383. <xs:element name="row-definitions" type="tns:RowDefinitionsType"/>
  384. <xs:element name="column-definitions" type="tns:ColumnDefinitionsType"/>
  385. </xs:sequence>
  386. <!-- ENHANCEMENT: v1.3 grid enhancements -->
  387. <xs:attribute name="show-grid-lines" type="xs:boolean" default="false"/>
  388. <xs:attribute name="grid-line-brush" type="xs:string"/>
  389. </xs:complexType>
  390. <xs:complexType name="RowDefinitionsType">
  391. <xs:sequence>
  392. <xs:element name="row-definition" maxOccurs="unbounded">
  393. <xs:complexType>
  394. <xs:attribute name="height" type="xs:string" use="required"/>
  395. <xs:attribute name="min-height" type="xs:string" default="0"/>
  396. <xs:attribute name="max-height" type="xs:string" default="Infinity"/>
  397. <!-- ENHANCEMENT: v1.3 additions -->
  398. <xs:attribute name="shared-size-group" type="xs:string"/>
  399. </xs:complexType>
  400. </xs:element>
  401. </xs:sequence>
  402. </xs:complexType>
  403. <xs:complexType name="ColumnDefinitionsType">
  404. <xs:sequence>
  405. <xs:element name="column-definition" maxOccurs="unbounded">
  406. <xs:complexType>
  407. <xs:attribute name="width" type="xs:string" use="required"/>
  408. <xs:attribute name="min-width" type="xs:string" default="0"/>
  409. <xs:attribute name="max-width" type="xs:string" default="Infinity"/>
  410. <!-- ENHANCEMENT: v1.3 additions -->
  411. <xs:attribute name="shared-size-group" type="xs:string"/>
  412. </xs:complexType>
  413. </xs:element>
  414. </xs:sequence>
  415. </xs:complexType>
  416. <xs:complexType name="TabsType">
  417. <xs:sequence>
  418. <xs:element name="TabItem" maxOccurs="unbounded">
  419. <xs:complexType>
  420. <xs:complexContent>
  421. <xs:extension base="tns:AvaloniaControlInstanceType">
  422. <xs:attribute name="header" type="xs:string"/>
  423. <xs:attribute name="is-selected" type="xs:boolean" default="false"/>
  424. <!-- ENHANCEMENT: v1.3 tab enhancements -->
  425. <xs:attribute name="closable" type="xs:boolean" default="false"/>
  426. <xs:attribute name="icon" type="xs:string"/>
  427. <xs:attribute name="badge" type="xs:string"/>
  428. </xs:extension>
  429. </xs:complexContent>
  430. </xs:complexType>
  431. </xs:element>
  432. </xs:sequence>
  433. </xs:complexType>
  434. <xs:complexType name="PaneType">
  435. <xs:complexContent>
  436. <xs:extension base="tns:AvaloniaControlInstanceType">
  437. <!-- ENHANCEMENT: v1.3 pane enhancements -->
  438. <xs:attribute name="collapsible" type="xs:boolean" default="false"/>
  439. <xs:attribute name="resizable" type="xs:boolean" default="true"/>
  440. <xs:attribute name="dockable" type="xs:boolean" default="false"/>
  441. </xs:extension>
  442. </xs:complexContent>
  443. </xs:complexType>
  444. <xs:complexType name="ContentType">
  445. <xs:complexContent>
  446. <xs:extension base="tns:AvaloniaControlInstanceType">
  447. <!-- ENHANCEMENT: v1.3 content enhancements -->
  448. <xs:attribute name="stretch" type="tns:StretchEnum" default="Uniform"/>
  449. <xs:attribute name="horizontal-alignment" type="tns:HorizontalAlignmentEnum" default="Center"/>
  450. <xs:attribute name="vertical-alignment" type="tns:VerticalAlignmentEnum" default="Center"/>
  451. </xs:extension>
  452. </xs:complexContent>
  453. </xs:complexType>
  454. <xs:simpleType name="StretchEnum">
  455. <xs:restriction base="xs:string">
  456. <xs:enumeration value="None"/>
  457. <xs:enumeration value="Fill"/>
  458. <xs:enumeration value="Uniform"/>
  459. <xs:enumeration value="UniformToFill"/>
  460. </xs:restriction>
  461. </xs:simpleType>
  462. <xs:simpleType name="HorizontalAlignmentEnum">
  463. <xs:restriction base="xs:string">
  464. <xs:enumeration value="Left"/>
  465. <xs:enumeration value="Center"/>
  466. <xs:enumeration value="Right"/>
  467. <xs:enumeration value="Stretch"/>
  468. </xs:restriction>
  469. </xs:simpleType>
  470. <xs:simpleType name="VerticalAlignmentEnum">
  471. <xs:restriction base="xs:string">
  472. <xs:enumeration value="Top"/>
  473. <xs:enumeration value="Center"/>
  474. <xs:enumeration value="Bottom"/>
  475. <xs:enumeration value="Stretch"/>
  476. </xs:restriction>
  477. </xs:simpleType>
  478. <!-- ENHANCEMENT: Resources Type -->
  479. <xs:complexType name="ResourcesType">
  480. <xs:sequence>
  481. <xs:element name="resource" type="tns:ResourceType" maxOccurs="unbounded"/>
  482. </xs:sequence>
  483. </xs:complexType>
  484. <xs:complexType name="ResourceType">
  485. <xs:attribute name="key" type="xs:string" use="required"/>
  486. <xs:attribute name="type" type="tns:ResourceTypeEnum" use="required"/>
  487. <xs:attribute name="value" type="xs:string"/>
  488. <xs:attribute name="source" type="xs:anyURI"/>
  489. </xs:complexType>
  490. <xs:simpleType name="ResourceTypeEnum">
  491. <xs:restriction base="xs:string">
  492. <xs:enumeration value="Brush"/>
  493. <xs:enumeration value="Color"/>
  494. <xs:enumeration value="Font"/>
  495. <xs:enumeration value="FontFamily"/>
  496. <xs:enumeration value="Thickness"/>
  497. <xs:enumeration value="CornerRadius"/>
  498. <xs:enumeration value="Image"/>
  499. <xs:enumeration value="Icon"/>
  500. <xs:enumeration value="Style"/>
  501. <xs:enumeration value="Template"/>
  502. <xs:enumeration value="Geometry"/>
  503. <xs:enumeration value="Transform"/>
  504. <xs:enumeration value="Animation"/>
  505. <xs:enumeration value="String"/>
  506. <xs:enumeration value="Double"/>
  507. <xs:enumeration value="Boolean"/>
  508. </xs:restriction>
  509. </xs:simpleType>
  510. <!-- ENHANCEMENT: Styles Type -->
  511. <xs:complexType name="StylesType">
  512. <xs:sequence>
  513. <xs:element name="style" type="tns:StyleType" maxOccurs="unbounded"/>
  514. </xs:sequence>
  515. </xs:complexType>
  516. <xs:complexType name="StyleType">
  517. <xs:sequence>
  518. <xs:element name="setter" type="tns:SetterType" maxOccurs="unbounded"/>
  519. <xs:element name="trigger" type="tns:TriggerType" minOccurs="0" maxOccurs="unbounded"/>
  520. </xs:sequence>
  521. <xs:attribute name="selector" type="xs:string" use="required"/>
  522. <xs:attribute name="target-type" type="xs:string"/>
  523. <xs:attribute name="base-style" type="xs:string"/>
  524. </xs:complexType>
  525. <xs:complexType name="SetterType">
  526. <xs:attribute name="property" type="xs:string" use="required"/>
  527. <xs:attribute name="value" type="xs:string" use="required"/>
  528. </xs:complexType>
  529. <xs:complexType name="TriggerType">
  530. <xs:sequence>
  531. <xs:element name="setter" type="tns:SetterType" maxOccurs="unbounded"/>
  532. </xs:sequence>
  533. <xs:attribute name="property" type="xs:string" use="required"/>
  534. <xs:attribute name="value" type="xs:string" use="required"/>
  535. </xs:complexType>
  536. <!-- ENHANCEMENT: Triggers Type -->
  537. <xs:complexType name="TriggersType">
  538. <xs:sequence>
  539. <xs:element name="trigger" type="tns:AdvancedTriggerType" maxOccurs="unbounded"/>
  540. </xs:sequence>
  541. </xs:complexType>
  542. <xs:complexType name="AdvancedTriggerType">
  543. <xs:sequence>
  544. <xs:element name="condition" type="tns:TriggerConditionType" maxOccurs="unbounded"/>
  545. <xs:element name="action" type="tns:TriggerActionType" maxOccurs="unbounded"/>
  546. </xs:sequence>
  547. <xs:attribute name="name" type="xs:string"/>
  548. <xs:attribute name="type" type="tns:TriggerTypeEnum" use="required"/>
  549. </xs:complexType>
  550. <xs:complexType name="TriggerConditionType">
  551. <xs:attribute name="property" type="xs:string" use="required"/>
  552. <xs:attribute name="operator" type="tns:ComparisonOperatorEnum" use="required"/>
  553. <xs:attribute name="value" type="xs:string" use="required"/>
  554. </xs:complexType>
  555. <xs:complexType name="TriggerActionType">
  556. <xs:attribute name="type" type="tns:ActionTypeEnum" use="required"/>
  557. <xs:attribute name="target" type="xs:string"/>
  558. <xs:attribute name="property" type="xs:string"/>
  559. <xs:attribute name="value" type="xs:string"/>
  560. <xs:attribute name="command" type="xs:string"/>
  561. </xs:complexType>
  562. <xs:simpleType name="TriggerTypeEnum">
  563. <xs:restriction base="xs:string">
  564. <xs:enumeration value="Property"/>
  565. <xs:enumeration value="Event"/>
  566. <xs:enumeration value="Data"/>
  567. <xs:enumeration value="Multi"/>
  568. <xs:enumeration value="Condition"/>
  569. </xs:restriction>
  570. </xs:simpleType>
  571. <xs:simpleType name="ComparisonOperatorEnum">
  572. <xs:restriction base="xs:string">
  573. <xs:enumeration value="Equal"/>
  574. <xs:enumeration value="NotEqual"/>
  575. <xs:enumeration value="GreaterThan"/>
  576. <xs:enumeration value="LessThan"/>
  577. <xs:enumeration value="GreaterThanOrEqual"/>
  578. <xs:enumeration value="LessThanOrEqual"/>
  579. <xs:enumeration value="Contains"/>
  580. <xs:enumeration value="StartsWith"/>
  581. <xs:enumeration value="EndsWith"/>
  582. </xs:restriction>
  583. </xs:simpleType>
  584. <xs:simpleType name="ActionTypeEnum">
  585. <xs:restriction base="xs:string">
  586. <xs:enumeration value="SetProperty"/>
  587. <xs:enumeration value="InvokeCommand"/>
  588. <xs:enumeration value="BeginStoryboard"/>
  589. <xs:enumeration value="StopStoryboard"/>
  590. <xs:enumeration value="PlaySound"/>
  591. <xs:enumeration value="CallMethod"/>
  592. </xs:restriction>
  593. </xs:simpleType>
  594. </xs:schema>