ui-layout-patterns.xsd 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. targetNamespace="http://quadarax.com/ui-layout-patterns"
  4. xmlns:tns="http://quadarax.com/ui-layout-patterns"
  5. elementFormDefault="qualified"
  6. version="1.6">
  7. <!-- Root element for pattern include files -->
  8. <xs:element name="patterns" type="tns:PatternsIncludeFileType"/>
  9. <!-- Pattern include file structure -->
  10. <xs:complexType name="PatternsIncludeFileType">
  11. <xs:choice minOccurs="0" maxOccurs="unbounded">
  12. <xs:element name="control" type="tns:ControlType"/>
  13. <xs:element name="structure" type="tns:StructureType"/>
  14. <xs:element name="wireframe" type="tns:WireframeType"/>
  15. </xs:choice>
  16. <!-- ENHANCEMENT: Version tracking for pattern files -->
  17. <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
  18. <xs:attribute name="target-platform" type="tns:PlatformEnum" default="basic"/>
  19. </xs:complexType>
  20. <!-- Platform Enumeration -->
  21. <xs:simpleType name="PlatformEnum">
  22. <xs:restriction base="xs:string">
  23. <xs:enumeration value="basic"/>
  24. <xs:enumeration value="winforms"/>
  25. <xs:enumeration value="avalonia"/>
  26. <xs:enumeration value="kde"/>
  27. <xs:enumeration value="web"/>
  28. <xs:enumeration value="mobile"/>
  29. <xs:enumeration value="mixed"/>
  30. </xs:restriction>
  31. </xs:simpleType>
  32. <!-- Control Definition -->
  33. <xs:complexType name="ControlType">
  34. <xs:sequence>
  35. <xs:element name="description" type="xs:string" minOccurs="0"/>
  36. <xs:element name="constraints" type="tns:ConstraintsType" minOccurs="0"/>
  37. <xs:element name="attributes" type="tns:AttributesType" minOccurs="0"/>
  38. <xs:element name="behavior" type="tns:BehaviorType" minOccurs="0"/>
  39. <xs:element name="structure" type="tns:ControlStructureType" minOccurs="0"/>
  40. <!-- ENHANCEMENT: v1.3 features -->
  41. <xs:element name="validation" type="tns:ValidationRulesType" minOccurs="0"/>
  42. <xs:element name="accessibility" type="tns:AccessibilityRequirementsType" minOccurs="0"/>
  43. <xs:element name="data-binding" type="tns:DataBindingCapabilitiesType" minOccurs="0"/>
  44. </xs:sequence>
  45. <xs:attribute name="name" type="xs:string" use="required"/>
  46. <xs:attribute name="type" type="tns:ControlTypeEnum" use="required"/>
  47. <xs:attribute name="category" type="tns:ControlCategoryEnum" use="required"/>
  48. <xs:attribute name="inherits" type="xs:string"/>
  49. <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
  50. <!-- ENHANCEMENT: Version tracking -->
  51. <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
  52. </xs:complexType>
  53. <!-- Control Type Enumeration -->
  54. <xs:simpleType name="ControlTypeEnum">
  55. <xs:restriction base="xs:string">
  56. <xs:enumeration value="display"/>
  57. <xs:enumeration value="input"/>
  58. <xs:enumeration value="button"/>
  59. <xs:enumeration value="container"/>
  60. <xs:enumeration value="menu"/>
  61. <xs:enumeration value="list"/>
  62. <xs:enumeration value="tree"/>
  63. <xs:enumeration value="data"/>
  64. <xs:enumeration value="dialog"/>
  65. <xs:enumeration value="system"/>
  66. <xs:enumeration value="media"/>
  67. <xs:enumeration value="navigation"/>
  68. <xs:enumeration value="composite"/>
  69. </xs:restriction>
  70. </xs:simpleType>
  71. <!-- Control Category Enumeration -->
  72. <xs:simpleType name="ControlCategoryEnum">
  73. <xs:restriction base="xs:string">
  74. <xs:enumeration value="basic"/>
  75. <xs:enumeration value="winforms-basic"/>
  76. <xs:enumeration value="winforms-input"/>
  77. <xs:enumeration value="winforms-data"/>
  78. <xs:enumeration value="winforms-dialog"/>
  79. <xs:enumeration value="winforms-layout"/>
  80. <xs:enumeration value="winforms-menu"/>
  81. <xs:enumeration value="winforms-toolbar"/>
  82. <xs:enumeration value="winforms-system"/>
  83. <xs:enumeration value="winforms-web"/>
  84. <xs:enumeration value="avalonia-basic"/>
  85. <xs:enumeration value="avalonia-input"/>
  86. <xs:enumeration value="avalonia-layout"/>
  87. <xs:enumeration value="avalonia-data"/>
  88. <xs:enumeration value="avalonia-media"/>
  89. <xs:enumeration value="avalonia-navigation"/>
  90. <xs:enumeration value="avalonia-popup"/>
  91. <xs:enumeration value="avalonia-window"/>
  92. <xs:enumeration value="avalonia-notification"/>
  93. <xs:enumeration value="avalonia-composite"/>
  94. <xs:enumeration value="avalonia-graphics"/>
  95. <xs:enumeration value="kde-specific"/>
  96. <xs:enumeration value="web-specific"/>
  97. <xs:enumeration value="mobile-specific"/>
  98. <xs:enumeration value="virtualization"/>
  99. <xs:enumeration value="ai-enhanced"/>
  100. <xs:enumeration value="accessibility-specialized"/>
  101. <xs:enumeration value="layout"/>
  102. <xs:enumeration value="composite"/>
  103. <xs:enumeration value="abstract"/>
  104. </xs:restriction>
  105. </xs:simpleType>
  106. <!-- Structure Definition -->
  107. <xs:complexType name="StructureType">
  108. <xs:sequence>
  109. <xs:element name="description" type="xs:string" minOccurs="0"/>
  110. <xs:element name="constraints" type="tns:ConstraintsType" minOccurs="0"/>
  111. <xs:element name="attributes" type="tns:AttributesType" minOccurs="0"/>
  112. <xs:element name="template" type="tns:TemplateType"/>
  113. <!-- ENHANCEMENT: v1.3 structure enhancements -->
  114. <xs:element name="composition" type="tns:CompositionType" minOccurs="0"/>
  115. </xs:sequence>
  116. <xs:attribute name="name" type="xs:string" use="required"/>
  117. <xs:attribute name="type" type="xs:string" use="required"/>
  118. <xs:attribute name="category" type="tns:ControlCategoryEnum" use="required"/>
  119. <xs:attribute name="inherits" type="xs:string"/>
  120. <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
  121. <!-- ENHANCEMENT: Version tracking -->
  122. <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
  123. </xs:complexType>
  124. <!-- Composition Type -->
  125. <xs:complexType name="CompositionType">
  126. <xs:sequence>
  127. <xs:element name="component" type="tns:ComponentType" maxOccurs="unbounded"/>
  128. </xs:sequence>
  129. </xs:complexType>
  130. <xs:complexType name="ComponentType">
  131. <xs:attribute name="name" type="xs:string" use="required"/>
  132. <xs:attribute name="type" type="xs:string" use="required"/>
  133. <xs:attribute name="required" type="xs:boolean" default="false"/>
  134. <xs:attribute name="multiple" type="xs:boolean" default="false"/>
  135. </xs:complexType>
  136. <!-- Wireframe Definition -->
  137. <xs:complexType name="WireframeType">
  138. <xs:sequence>
  139. <xs:element name="description" type="xs:string" minOccurs="0"/>
  140. <xs:element name="template" type="tns:TemplateType"/>
  141. <!-- ENHANCEMENT: v1.3 wireframe enhancements -->
  142. <xs:element name="responsive" type="tns:ResponsiveType" minOccurs="0"/>
  143. <xs:element name="theme-support" type="tns:ThemeSupportType" minOccurs="0"/>
  144. </xs:sequence>
  145. <xs:attribute name="name" type="xs:string" use="required"/>
  146. <xs:attribute name="type" type="xs:string" use="required"/>
  147. <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
  148. <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
  149. </xs:complexType>
  150. <!-- FIXED: Responsive Type -->
  151. <xs:complexType name="ResponsiveType">
  152. <xs:sequence>
  153. <xs:element name="breakpoint" type="tns:BreakpointType" maxOccurs="unbounded"/>
  154. </xs:sequence>
  155. </xs:complexType>
  156. <!-- FIXED: Complete BreakpointType Definition -->
  157. <xs:complexType name="BreakpointType">
  158. <xs:attribute name="name" type="xs:string" use="required"/>
  159. <xs:attribute name="min-width" type="xs:int" use="required"/>
  160. <xs:attribute name="max-width" type="xs:int"/>
  161. <xs:attribute name="orientation" type="tns:OrientationEnum" default="any"/>
  162. <xs:attribute name="density" type="xs:string"/>
  163. <xs:attribute name="platform" type="tns:PlatformEnum"/>
  164. <xs:attribute name="description" type="xs:string"/>
  165. </xs:complexType>
  166. <!-- Orientation Enumeration -->
  167. <xs:simpleType name="OrientationEnum">
  168. <xs:restriction base="xs:string">
  169. <xs:enumeration value="portrait"/>
  170. <xs:enumeration value="landscape"/>
  171. <xs:enumeration value="any"/>
  172. </xs:restriction>
  173. </xs:simpleType>
  174. <!-- FIXED: Theme Support Type -->
  175. <xs:complexType name="ThemeSupportType">
  176. <xs:sequence>
  177. <xs:element name="theme" type="tns:ThemeType" maxOccurs="unbounded"/>
  178. </xs:sequence>
  179. <xs:attribute name="default-theme" type="xs:string" default="default"/>
  180. <xs:attribute name="auto-theme-switching" type="xs:boolean" default="true"/>
  181. </xs:complexType>
  182. <!-- Theme Type -->
  183. <xs:complexType name="ThemeType">
  184. <xs:attribute name="name" type="xs:string" use="required"/>
  185. <xs:attribute name="type" type="tns:ThemeTypeEnum" use="required"/>
  186. <xs:attribute name="resource-path" type="xs:string"/>
  187. <xs:attribute name="base-theme" type="xs:string"/>
  188. </xs:complexType>
  189. <!-- Theme Type Enumeration -->
  190. <xs:simpleType name="ThemeTypeEnum">
  191. <xs:restriction base="xs:string">
  192. <xs:enumeration value="light"/>
  193. <xs:enumeration value="dark"/>
  194. <xs:enumeration value="high-contrast"/>
  195. <xs:enumeration value="custom"/>
  196. <xs:enumeration value="auto"/>
  197. </xs:restriction>
  198. </xs:simpleType>
  199. <!-- Constraints -->
  200. <xs:complexType name="ConstraintsType">
  201. <xs:sequence>
  202. <xs:element name="allowed-parents" type="xs:string" minOccurs="0"/>
  203. <xs:element name="allowed-children" type="xs:string" minOccurs="0"/>
  204. <xs:element name="container" type="xs:boolean" minOccurs="0"/>
  205. <xs:element name="max-children" type="xs:string" minOccurs="0"/>
  206. <xs:element name="requires-structure" type="xs:string" minOccurs="0"/>
  207. <xs:element name="required-slots" type="xs:string" minOccurs="0"/>
  208. <!-- ENHANCEMENT: v1.3 additional constraints -->
  209. <xs:element name="platform-constraints" type="tns:PlatformConstraintsType" minOccurs="0"/>
  210. <xs:element name="performance-hints" type="tns:PerformanceHintsType" minOccurs="0"/>
  211. </xs:sequence>
  212. </xs:complexType>
  213. <!-- Platform Constraints Type -->
  214. <xs:complexType name="PlatformConstraintsType">
  215. <xs:sequence>
  216. <xs:element name="platform-constraint" type="tns:PlatformConstraintType" maxOccurs="unbounded"/>
  217. </xs:sequence>
  218. </xs:complexType>
  219. <xs:complexType name="PlatformConstraintType">
  220. <xs:attribute name="platform" type="tns:PlatformEnum" use="required"/>
  221. <xs:attribute name="min-version" type="xs:string"/>
  222. <xs:attribute name="max-version" type="xs:string"/>
  223. <xs:attribute name="feature-required" type="xs:string"/>
  224. <xs:attribute name="alternative-control" type="xs:string"/>
  225. </xs:complexType>
  226. <!-- Performance Hints Type -->
  227. <xs:complexType name="PerformanceHintsType">
  228. <xs:attribute name="virtualization-supported" type="xs:boolean" default="false"/>
  229. <xs:attribute name="heavy-rendering" type="xs:boolean" default="false"/>
  230. <xs:attribute name="memory-intensive" type="xs:boolean" default="false"/>
  231. <xs:attribute name="ui-thread-blocking" type="xs:boolean" default="false"/>
  232. <xs:attribute name="recommended-max-items" type="xs:int"/>
  233. </xs:complexType>
  234. <!-- Attributes -->
  235. <xs:complexType name="AttributesType">
  236. <xs:sequence>
  237. <xs:element name="attribute" type="tns:AttributeType" maxOccurs="unbounded"/>
  238. </xs:sequence>
  239. </xs:complexType>
  240. <xs:complexType name="AttributeType">
  241. <xs:attribute name="name" type="xs:string" use="required"/>
  242. <xs:attribute name="type" type="tns:AttributeTypeEnum" use="required"/>
  243. <xs:attribute name="default" type="xs:string"/>
  244. <xs:attribute name="required" type="xs:boolean" default="false"/>
  245. <xs:attribute name="min" type="xs:int"/>
  246. <xs:attribute name="max" type="xs:int"/>
  247. <xs:attribute name="values" type="xs:string"/>
  248. <xs:attribute name="deprecated" type="xs:boolean" default="false"/>
  249. <xs:attribute name="platform-specific" type="tns:PlatformEnum"/>
  250. <xs:attribute name="validation-pattern" type="xs:string"/>
  251. <xs:attribute name="category" type="xs:string"/>
  252. <xs:attribute name="description" type="xs:string"/>
  253. </xs:complexType>
  254. <!-- Attribute Type Enumeration -->
  255. <xs:simpleType name="AttributeTypeEnum">
  256. <xs:restriction base="xs:string">
  257. <xs:enumeration value="string"/>
  258. <xs:enumeration value="int"/>
  259. <xs:enumeration value="bool"/>
  260. <xs:enumeration value="enum"/>
  261. <xs:enumeration value="color"/>
  262. <xs:enumeration value="font"/>
  263. <xs:enumeration value="date"/>
  264. <xs:enumeration value="datetime"/>
  265. <xs:enumeration value="timespan"/>
  266. <xs:enumeration value="icon"/>
  267. <xs:enumeration value="image"/>
  268. <xs:enumeration value="url"/>
  269. <xs:enumeration value="decimal"/>
  270. <xs:enumeration value="regex"/>
  271. <xs:enumeration value="object"/>
  272. <xs:enumeration value="char"/>
  273. <xs:enumeration value="array"/>
  274. </xs:restriction>
  275. </xs:simpleType>
  276. <!-- Behavior -->
  277. <xs:complexType name="BehaviorType">
  278. <xs:sequence>
  279. <xs:element name="event" type="tns:EventType" maxOccurs="unbounded"/>
  280. <xs:element name="command" type="tns:CommandType" minOccurs="0" maxOccurs="unbounded"/>
  281. <xs:element name="gesture" type="tns:GestureType" minOccurs="0" maxOccurs="unbounded"/>
  282. </xs:sequence>
  283. </xs:complexType>
  284. <xs:complexType name="EventType">
  285. <xs:attribute name="name" type="xs:string" use="required"/>
  286. <xs:attribute name="alias" type="xs:string"/>
  287. <xs:attribute name="async" type="xs:boolean" default="false"/>
  288. <xs:attribute name="cancelable" type="xs:boolean" default="false"/>
  289. <xs:attribute name="bubbles" type="xs:boolean" default="false"/>
  290. <xs:attribute name="accessibility-event" type="xs:boolean" default="false"/>
  291. <xs:attribute name="description" type="xs:string"/>
  292. </xs:complexType>
  293. <xs:complexType name="CommandType">
  294. <xs:attribute name="name" type="xs:string" use="required"/>
  295. <xs:attribute name="can-execute-property" type="xs:string"/>
  296. <xs:attribute name="async" type="xs:boolean" default="false"/>
  297. <xs:attribute name="description" type="xs:string"/>
  298. </xs:complexType>
  299. <xs:complexType name="GestureType">
  300. <xs:attribute name="name" type="xs:string" use="required"/>
  301. <xs:attribute name="type" type="tns:GestureTypeEnum" use="required"/>
  302. <xs:attribute name="platform-specific" type="tns:PlatformEnum"/>
  303. <xs:attribute name="description" type="xs:string"/>
  304. </xs:complexType>
  305. <xs:simpleType name="GestureTypeEnum">
  306. <xs:restriction base="xs:string">
  307. <xs:enumeration value="tap"/>
  308. <xs:enumeration value="double-tap"/>
  309. <xs:enumeration value="long-press"/>
  310. <xs:enumeration value="swipe"/>
  311. <xs:enumeration value="pinch"/>
  312. <xs:enumeration value="rotate"/>
  313. <xs:enumeration value="pan"/>
  314. <xs:enumeration value="drag"/>
  315. <xs:enumeration value="flick"/>
  316. </xs:restriction>
  317. </xs:simpleType>
  318. <!-- Template Type -->
  319. <xs:complexType name="TemplateType" mixed="true">
  320. <xs:choice minOccurs="0" maxOccurs="unbounded">
  321. <!-- Allow any content for flexibility -->
  322. <xs:any processContents="lax"/>
  323. </xs:choice>
  324. </xs:complexType>
  325. <!-- Validation Rules Type -->
  326. <xs:complexType name="ValidationRulesType">
  327. <xs:sequence>
  328. <xs:element name="rule" type="tns:ValidationRuleType" maxOccurs="unbounded"/>
  329. </xs:sequence>
  330. </xs:complexType>
  331. <xs:complexType name="ValidationRuleType">
  332. <xs:attribute name="name" type="xs:string" use="required"/>
  333. <xs:attribute name="type" type="tns:ValidationTypeEnum" use="required"/>
  334. <xs:attribute name="pattern" type="xs:string"/>
  335. <xs:attribute name="message" type="xs:string"/>
  336. <xs:attribute name="severity" type="tns:ValidationSeverityEnum" default="error"/>
  337. </xs:complexType>
  338. <xs:simpleType name="ValidationTypeEnum">
  339. <xs:restriction base="xs:string">
  340. <xs:enumeration value="required"/>
  341. <xs:enumeration value="pattern"/>
  342. <xs:enumeration value="range"/>
  343. <xs:enumeration value="length"/>
  344. <xs:enumeration value="custom"/>
  345. <xs:enumeration value="email"/>
  346. <xs:enumeration value="url"/>
  347. <xs:enumeration value="number"/>
  348. <xs:enumeration value="date"/>
  349. </xs:restriction>
  350. </xs:simpleType>
  351. <xs:simpleType name="ValidationSeverityEnum">
  352. <xs:restriction base="xs:string">
  353. <xs:enumeration value="error"/>
  354. <xs:enumeration value="warning"/>
  355. <xs:enumeration value="info"/>
  356. </xs:restriction>
  357. </xs:simpleType>
  358. <!-- Accessibility Requirements Type -->
  359. <xs:complexType name="AccessibilityRequirementsType">
  360. <xs:sequence>
  361. <xs:element name="requirement" type="tns:AccessibilityRequirementType" maxOccurs="unbounded"/>
  362. </xs:sequence>
  363. </xs:complexType>
  364. <xs:complexType name="AccessibilityRequirementType">
  365. <xs:attribute name="standard" type="tns:AccessibilityStandardEnum" use="required"/>
  366. <xs:attribute name="level" type="tns:AccessibilityLevelEnum" use="required"/>
  367. <xs:attribute name="description" type="xs:string"/>
  368. <xs:attribute name="required" type="xs:boolean" default="true"/>
  369. </xs:complexType>
  370. <xs:simpleType name="AccessibilityStandardEnum">
  371. <xs:restriction base="xs:string">
  372. <xs:enumeration value="wcag"/>
  373. <xs:enumeration value="section-508"/>
  374. <xs:enumeration value="ada"/>
  375. <xs:enumeration value="en-301-549"/>
  376. </xs:restriction>
  377. </xs:simpleType>
  378. <xs:simpleType name="AccessibilityLevelEnum">
  379. <xs:restriction base="xs:string">
  380. <xs:enumeration value="a"/>
  381. <xs:enumeration value="aa"/>
  382. <xs:enumeration value="aaa"/>
  383. </xs:restriction>
  384. </xs:simpleType>
  385. <!-- Data Binding Capabilities Type -->
  386. <xs:complexType name="DataBindingCapabilitiesType">
  387. <xs:sequence>
  388. <xs:element name="bindable-property" type="tns:BindablePropertyType" maxOccurs="unbounded"/>
  389. </xs:sequence>
  390. <xs:attribute name="supports-two-way" type="xs:boolean" default="false"/>
  391. <xs:attribute name="supports-commands" type="xs:boolean" default="false"/>
  392. <xs:attribute name="supports-validation" type="xs:boolean" default="false"/>
  393. </xs:complexType>
  394. <xs:complexType name="BindablePropertyType">
  395. <xs:attribute name="name" type="xs:string" use="required"/>
  396. <xs:attribute name="type" type="xs:string" use="required"/>
  397. <xs:attribute name="mode" type="tns:BindingModeEnum" default="OneWay"/>
  398. <xs:attribute name="default-value" type="xs:string"/>
  399. <xs:attribute name="dependency-property" type="xs:boolean" default="false"/>
  400. </xs:complexType>
  401. <xs:simpleType name="BindingModeEnum">
  402. <xs:restriction base="xs:string">
  403. <xs:enumeration value="OneWay"/>
  404. <xs:enumeration value="TwoWay"/>
  405. <xs:enumeration value="OneTime"/>
  406. <xs:enumeration value="OneWayToSource"/>
  407. </xs:restriction>
  408. </xs:simpleType>
  409. <!-- Control Structure (simplified for patterns) -->
  410. <xs:complexType name="ControlStructureType">
  411. <xs:choice maxOccurs="unbounded">
  412. <xs:element name="items" type="tns:ItemsType"/>
  413. <xs:element name="menu-items" type="tns:MenuItemsType"/>
  414. <xs:element name="columns" type="tns:ColumnsType"/>
  415. <xs:element name="children" type="tns:ChildrenType"/>
  416. <xs:element name="selected-items" type="tns:SelectedItemsType"/>
  417. <xs:element name="context-menu" type="tns:ContextMenuType"/>
  418. <xs:element name="panel1" type="tns:PanelType"/>
  419. <xs:element name="panel2" type="tns:PanelType"/>
  420. <xs:element name="pane" type="tns:PaneType"/>
  421. <xs:element name="content" type="tns:ContentType"/>
  422. <xs:element name="grid-definitions" type="tns:GridDefinitionsType"/>
  423. <xs:element name="templates" type="tns:TemplatesType"/>
  424. <xs:element name="resources" type="tns:ResourcesType"/>
  425. <xs:element name="animations" type="tns:AnimationsType"/>
  426. </xs:choice>
  427. </xs:complexType>
  428. <!-- Supporting Structure Types -->
  429. <xs:complexType name="ItemsType">
  430. <xs:attribute name="min-count" type="xs:int" default="0"/>
  431. <xs:attribute name="max-count" type="xs:string" default="unbounded"/>
  432. </xs:complexType>
  433. <xs:complexType name="MenuItemsType">
  434. <xs:attribute name="max-depth" type="xs:int" default="5"/>
  435. </xs:complexType>
  436. <xs:complexType name="ColumnsType">
  437. <xs:attribute name="resizable" type="xs:boolean" default="true"/>
  438. </xs:complexType>
  439. <xs:complexType name="ChildrenType">
  440. <xs:attribute name="max-count" type="xs:string" default="unbounded"/>
  441. </xs:complexType>
  442. <xs:complexType name="SelectedItemsType">
  443. <xs:attribute name="max-count" type="xs:int" default="1"/>
  444. </xs:complexType>
  445. <xs:complexType name="ContextMenuType">
  446. <xs:attribute name="enabled" type="xs:boolean" default="true"/>
  447. </xs:complexType>
  448. <xs:complexType name="PanelType">
  449. <xs:attribute name="resizable" type="xs:boolean" default="true"/>
  450. </xs:complexType>
  451. <xs:complexType name="PaneType">
  452. <xs:attribute name="collapsible" type="xs:boolean" default="false"/>
  453. </xs:complexType>
  454. <xs:complexType name="ContentType">
  455. <xs:attribute name="type" type="xs:string" default="any"/>
  456. </xs:complexType>
  457. <xs:complexType name="GridDefinitionsType">
  458. <xs:attribute name="auto-generate" type="xs:boolean" default="false"/>
  459. </xs:complexType>
  460. <xs:complexType name="TemplatesType">
  461. <xs:sequence>
  462. <xs:element name="template" type="tns:TemplateDefinitionType" maxOccurs="unbounded"/>
  463. </xs:sequence>
  464. </xs:complexType>
  465. <xs:complexType name="TemplateDefinitionType">
  466. <xs:attribute name="name" type="xs:string" use="required"/>
  467. <xs:attribute name="type" type="tns:TemplateTypeEnum" use="required"/>
  468. <xs:attribute name="target-type" type="xs:string"/>
  469. <xs:attribute name="data-type" type="xs:string"/>
  470. </xs:complexType>
  471. <xs:simpleType name="TemplateTypeEnum">
  472. <xs:restriction base="xs:string">
  473. <xs:enumeration value="control"/>
  474. <xs:enumeration value="data"/>
  475. <xs:enumeration value="item"/>
  476. <xs:enumeration value="header"/>
  477. <xs:enumeration value="footer"/>
  478. <xs:enumeration value="cell"/>
  479. </xs:restriction>
  480. </xs:simpleType>
  481. <xs:complexType name="ResourcesType">
  482. <xs:attribute name="auto-load" type="xs:boolean" default="true"/>
  483. </xs:complexType>
  484. <xs:complexType name="AnimationsType">
  485. <xs:attribute name="enabled" type="xs:boolean" default="true"/>
  486. </xs:complexType>
  487. </xs:schema>