ui-layout-avalonia-controls.xsd 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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.2">
  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. <xs:anyAttribute processContents="lax"/>
  14. </xs:complexType>
  15. <!-- Avalonia Control Content Group -->
  16. <xs:group name="AvaloniaControlContentGroup">
  17. <xs:choice>
  18. <!-- Include all basic controls -->
  19. <xs:group ref="basic:BasicControlContentGroup"/>
  20. <!-- Avalonia-Specific Controls -->
  21. <xs:element name="AvaloniaButton" type="tns:AvaloniaControlInstanceType"/>
  22. <xs:element name="RepeatButton" type="tns:AvaloniaControlInstanceType"/>
  23. <xs:element name="StackPanel" type="tns:AvaloniaControlInstanceType"/>
  24. <xs:element name="Grid" type="tns:AvaloniaControlInstanceType"/>
  25. <xs:element name="DockPanel" type="tns:AvaloniaControlInstanceType"/>
  26. <xs:element name="WrapPanel" type="tns:AvaloniaControlInstanceType"/>
  27. <xs:element name="Canvas" type="tns:AvaloniaControlInstanceType"/>
  28. <xs:element name="UniformGrid" type="tns:AvaloniaControlInstanceType"/>
  29. <xs:element name="AvaloniaTextBox" type="tns:AvaloniaControlInstanceType"/>
  30. <xs:element name="NumericUpDown" type="tns:AvaloniaControlInstanceType"/>
  31. <xs:element name="AutoCompleteBox" type="tns:AvaloniaControlInstanceType"/>
  32. <xs:element name="AvaloniaComboBox" type="tns:AvaloniaControlInstanceType"/>
  33. <xs:element name="CalendarDatePicker" type="tns:AvaloniaControlInstanceType"/>
  34. <xs:element name="TimePicker" type="tns:AvaloniaControlInstanceType"/>
  35. <xs:element name="Slider" type="tns:AvaloniaControlInstanceType"/>
  36. <xs:element name="AvaloniaLabel" type="tns:AvaloniaControlInstanceType"/>
  37. <xs:element name="TextBlock" type="tns:AvaloniaControlInstanceType"/>
  38. <xs:element name="ProgressBar" type="tns:AvaloniaControlInstanceType"/>
  39. <xs:element name="AvaloniaListView" type="tns:AvaloniaControlInstanceType"/>
  40. <xs:element name="DataGrid" type="tns:AvaloniaControlInstanceType"/>
  41. <xs:element name="AvaloniaTreeView" type="tns:AvaloniaControlInstanceType"/>
  42. <xs:element name="Border" type="tns:AvaloniaControlInstanceType"/>
  43. <xs:element name="ScrollViewer" type="tns:AvaloniaControlInstanceType"/>
  44. <xs:element name="Expander" type="tns:AvaloniaControlInstanceType"/>
  45. <xs:element name="TabControl" type="tns:AvaloniaControlInstanceType"/>
  46. <xs:element name="SplitView" type="tns:AvaloniaControlInstanceType"/>
  47. <xs:element name="MenuBar" type="tns:AvaloniaControlInstanceType"/>
  48. <xs:element name="ContextMenu" type="tns:AvaloniaControlInstanceType"/>
  49. <xs:element name="ToolTip" type="tns:AvaloniaControlInstanceType"/>
  50. <xs:element name="FlyoutBase" type="tns:AvaloniaControlInstanceType"/>
  51. <xs:element name="Window" type="tns:AvaloniaControlInstanceType"/>
  52. <xs:element name="UserControl" type="tns:AvaloniaControlInstanceType"/>
  53. <xs:element name="MediaElement" type="tns:AvaloniaControlInstanceType"/>
  54. <xs:element name="MaskedTextBox" type="tns:AvaloniaControlInstanceType"/>
  55. <xs:element name="ColorPicker" type="tns:AvaloniaControlInstanceType"/>
  56. <xs:element name="PathIcon" type="tns:AvaloniaControlInstanceType"/>
  57. <xs:element name="Viewbox" type="tns:AvaloniaControlInstanceType"/>
  58. <xs:element name="NotificationCard" type="tns:AvaloniaControlInstanceType"/>
  59. <!-- Avalonia Structure Elements -->
  60. <xs:element name="AvaloniaFormField" type="tns:AvaloniaControlInstanceType"/>
  61. <xs:element name="AvaloniaButtonBar" type="tns:AvaloniaControlInstanceType"/>
  62. <xs:element name="AvaloniaToolbar" type="tns:AvaloniaControlInstanceType"/>
  63. <xs:element name="AvaloniaStatusBar" type="tns:AvaloniaControlInstanceType"/>
  64. <!-- Avalonia Item Elements -->
  65. <xs:element name="ListBoxItem" type="tns:AvaloniaControlInstanceType"/>
  66. <xs:element name="ComboBoxItem" type="tns:AvaloniaControlInstanceType"/>
  67. <xs:element name="TreeViewItem" type="tns:AvaloniaControlInstanceType"/>
  68. <xs:element name="TabItem" type="tns:AvaloniaControlInstanceType"/>
  69. <xs:element name="MenuItem" type="tns:AvaloniaControlInstanceType"/>
  70. <xs:element name="NativeMenuItem" type="tns:AvaloniaControlInstanceType"/>
  71. <!-- Avalonia Data Grid Columns -->
  72. <xs:element name="DataGridColumn" type="tns:AvaloniaControlInstanceType"/>
  73. <xs:element name="DataGridTextColumn" type="tns:AvaloniaControlInstanceType"/>
  74. <xs:element name="DataGridCheckBoxColumn" type="tns:AvaloniaControlInstanceType"/>
  75. <xs:element name="DataGridComboBoxColumn" type="tns:AvaloniaControlInstanceType"/>
  76. <xs:element name="DataGridTemplateColumn" type="tns:AvaloniaControlInstanceType"/>
  77. <!-- Avalonia-specific supporting elements -->
  78. <xs:element name="grid-definitions" type="tns:GridDefinitionsType"/>
  79. <xs:element name="tabs" type="tns:TabsType"/>
  80. <xs:element name="pane" type="tns:PaneType"/>
  81. <xs:element name="content" type="tns:ContentType"/>
  82. </xs:choice>
  83. </xs:group>
  84. <!-- Avalonia-specific supporting types -->
  85. <xs:complexType name="GridDefinitionsType">
  86. <xs:sequence>
  87. <xs:element name="row-definitions" type="tns:RowDefinitionsType"/>
  88. <xs:element name="column-definitions" type="tns:ColumnDefinitionsType"/>
  89. </xs:sequence>
  90. </xs:complexType>
  91. <xs:complexType name="RowDefinitionsType">
  92. <xs:sequence>
  93. <xs:element name="row-definition" maxOccurs="unbounded">
  94. <xs:complexType>
  95. <xs:attribute name="height" type="xs:string" use="required"/>
  96. <xs:attribute name="min-height" type="xs:string" default="0"/>
  97. <xs:attribute name="max-height" type="xs:string" default="Infinity"/>
  98. </xs:complexType>
  99. </xs:element>
  100. </xs:sequence>
  101. </xs:complexType>
  102. <xs:complexType name="ColumnDefinitionsType">
  103. <xs:sequence>
  104. <xs:element name="column-definition" maxOccurs="unbounded">
  105. <xs:complexType>
  106. <xs:attribute name="width" type="xs:string" use="required"/>
  107. <xs:attribute name="min-width" type="xs:string" default="0"/>
  108. <xs:attribute name="max-width" type="xs:string" default="Infinity"/>
  109. </xs:complexType>
  110. </xs:element>
  111. </xs:sequence>
  112. </xs:complexType>
  113. <xs:complexType name="TabsType">
  114. <xs:sequence>
  115. <xs:element name="TabItem" maxOccurs="unbounded">
  116. <xs:complexType>
  117. <xs:complexContent>
  118. <xs:extension base="tns:AvaloniaControlInstanceType">
  119. <xs:attribute name="header" type="xs:string"/>
  120. <xs:attribute name="is-selected" type="xs:boolean" default="false"/>
  121. </xs:extension>
  122. </xs:complexContent>
  123. </xs:complexType>
  124. </xs:element>
  125. </xs:sequence>
  126. </xs:complexType>
  127. <xs:complexType name="PaneType">
  128. <xs:complexContent>
  129. <xs:extension base="tns:AvaloniaControlInstanceType"/>
  130. </xs:complexContent>
  131. </xs:complexType>
  132. <xs:complexType name="ContentType">
  133. <xs:complexContent>
  134. <xs:extension base="tns:AvaloniaControlInstanceType"/>
  135. </xs:complexContent>
  136. </xs:complexType>
  137. </xs:schema>