ui-layout-patterns.xsd 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. targetNamespace="ui-layout-patterns"
  4. xmlns:tns="ui-layout-patterns"
  5. elementFormDefault="qualified"
  6. version="1.3">
  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.3"/>
  18. <xs:attribute name="target-platform" type="tns:PlatformEnum" default="basic"/>
  19. </xs:complexType>
  20. <!-- ENHANCEMENT: 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.3"/>
  52. <xs:attribute name="deprecated" type="xs:boolean" default="false"/>
  53. <xs:attribute name="replaced-by" type="xs:string"/>
  54. </xs:complexType>
  55. <!-- Control Type Enumeration -->
  56. <xs:simpleType name="ControlTypeEnum">
  57. <xs:restriction base="xs:string">
  58. <xs:enumeration value="base"/>
  59. <xs:enumeration value="action"/>
  60. <xs:enumeration value="input"/>
  61. <xs:enumeration value="display"/>
  62. <xs:enumeration value="container"/>
  63. <xs:enumeration value="data"/>
  64. <xs:enumeration value="navigation"/>
  65. <xs:enumeration value="system"/>
  66. <xs:enumeration value="dialog"/>
  67. <xs:enumeration value="layout"/>
  68. <xs:enumeration value="media"/>
  69. <xs:enumeration value="decoration"/>
  70. <!-- ENHANCEMENT: New control types -->
  71. <xs:enumeration value="composite"/>
  72. <xs:enumeration value="virtual"/>
  73. <xs:enumeration value="utility"/>
  74. </xs:restriction>
  75. </xs:simpleType>
  76. <!-- ENHANCEMENT: Expanded Control Category Enumeration -->
  77. <xs:simpleType name="ControlCategoryEnum">
  78. <xs:restriction base="xs:string">
  79. <xs:enumeration value="abstract"/>
  80. <xs:enumeration value="basic"/>
  81. <xs:enumeration value="input"/>
  82. <xs:enumeration value="action"/>
  83. <xs:enumeration value="layout"/>
  84. <xs:enumeration value="data"/>
  85. <xs:enumeration value="navigation"/>
  86. <xs:enumeration value="composite"/>
  87. <xs:enumeration value="windows-specific"/>
  88. <xs:enumeration value="winforms-basic"/>
  89. <xs:enumeration value="winforms-input"/>
  90. <xs:enumeration value="winforms-action"/>
  91. <xs:enumeration value="winforms-container"/>
  92. <xs:enumeration value="winforms-data"/>
  93. <xs:enumeration value="winforms-status"/>
  94. <xs:enumeration value="winforms-menu"/>
  95. <xs:enumeration value="winforms-toolbar"/>
  96. <xs:enumeration value="winforms-scroll"/>
  97. <xs:enumeration value="winforms-display"/>
  98. <xs:enumeration value="winforms-system"/>
  99. <xs:enumeration value="winforms-validation"/>
  100. <xs:enumeration value="winforms-dialog"/>
  101. <xs:enumeration value="winforms-web"/>
  102. <xs:enumeration value="avalonia-specific"/>
  103. <xs:enumeration value="avalonia-layout"/>
  104. <xs:enumeration value="avalonia-input"/>
  105. <xs:enumeration value="avalonia-display"/>
  106. <xs:enumeration value="avalonia-data"/>
  107. <xs:enumeration value="avalonia-container"/>
  108. <xs:enumeration value="avalonia-decoration"/>
  109. <xs:enumeration value="avalonia-navigation"/>
  110. <xs:enumeration value="avalonia-popup"/>
  111. <xs:enumeration value="avalonia-window"/>
  112. <xs:enumeration value="avalonia-media"/>
  113. <xs:enumeration value="avalonia-notification"/>
  114. <xs:enumeration value="avalonia-composite"/>
  115. <xs:enumeration value="avalonia-graphics"/>
  116. <xs:enumeration value="kde-specific"/>
  117. <xs:enumeration value="web-specific"/>
  118. <xs:enumeration value="mobile-specific"/>
  119. <!-- ENHANCEMENT: v1.3 new categories -->
  120. <xs:enumeration value="virtualization"/>
  121. <xs:enumeration value="ai-enhanced"/>
  122. <xs:enumeration value="accessibility-specialized"/>
  123. </xs:restriction>
  124. </xs:simpleType>
  125. <!-- ENHANCEMENT: Validation Rules Type -->
  126. <xs:complexType name="ValidationRulesType">
  127. <xs:sequence>
  128. <xs:element name="rule" type="tns:ValidationRuleType" maxOccurs="unbounded"/>
  129. </xs:sequence>
  130. </xs:complexType>
  131. <xs:complexType name="ValidationRuleType">
  132. <xs:attribute name="name" type="xs:string" use="required"/>
  133. <xs:attribute name="type" type="tns:ValidationTypeEnum" use="required"/>
  134. <xs:attribute name="pattern" type="xs:string"/>
  135. <xs:attribute name="message" type="xs:string"/>
  136. <xs:attribute name="severity" type="tns:ValidationSeverityEnum" default="error"/>
  137. </xs:complexType>
  138. <xs:simpleType name="ValidationTypeEnum">
  139. <xs:restriction base="xs:string">
  140. <xs:enumeration value="required"/>
  141. <xs:enumeration value="pattern"/>
  142. <xs:enumeration value="range"/>
  143. <xs:enumeration value="length"/>
  144. <xs:enumeration value="custom"/>
  145. <xs:enumeration value="email"/>
  146. <xs:enumeration value="url"/>
  147. <xs:enumeration value="number"/>
  148. <xs:enumeration value="date"/>
  149. </xs:restriction>
  150. </xs:simpleType>
  151. <xs:simpleType name="ValidationSeverityEnum">
  152. <xs:restriction base="xs:string">
  153. <xs:enumeration value="error"/>
  154. <xs:enumeration value="warning"/>
  155. <xs:enumeration value="info"/>
  156. </xs:restriction>
  157. </xs:simpleType>
  158. <!-- ENHANCEMENT: Accessibility Requirements Type -->
  159. <xs:complexType name="AccessibilityRequirementsType">
  160. <xs:sequence>
  161. <xs:element name="requirement" type="tns:AccessibilityRequirementType" maxOccurs="unbounded"/>
  162. </xs:sequence>
  163. </xs:complexType>
  164. <xs:complexType name="AccessibilityRequirementType">
  165. <xs:attribute name="standard" type="tns:AccessibilityStandardEnum" use="required"/>
  166. <xs:attribute name="level" type="tns:AccessibilityLevelEnum" use="required"/>
  167. <xs:attribute name="description" type="xs:string"/>
  168. <xs:attribute name="required" type="xs:boolean" default="true"/>
  169. </xs:complexType>
  170. <xs:simpleType name="AccessibilityStandardEnum">
  171. <xs:restriction base="xs:string">
  172. <xs:enumeration value="wcag"/>
  173. <xs:enumeration value="section-508"/>
  174. <xs:enumeration value="ada"/>
  175. <xs:enumeration value="en-301-549"/>
  176. </xs:restriction>
  177. </xs:simpleType>
  178. <xs:simpleType name="AccessibilityLevelEnum">
  179. <xs:restriction base="xs:string">
  180. <xs:enumeration value="a"/>
  181. <xs:enumeration value="aa"/>
  182. <xs:enumeration value="aaa"/>
  183. </xs:restriction>
  184. </xs:simpleType>
  185. <!-- ENHANCEMENT: Data Binding Capabilities Type -->
  186. <xs:complexType name="DataBindingCapabilitiesType">
  187. <xs:sequence>
  188. <xs:element name="bindable-property" type="tns:BindablePropertyType" maxOccurs="unbounded"/>
  189. </xs:sequence>
  190. <xs:attribute name="supports-two-way" type="xs:boolean" default="false"/>
  191. <xs:attribute name="supports-commands" type="xs:boolean" default="false"/>
  192. <xs:attribute name="supports-validation" type="xs:boolean" default="false"/>
  193. </xs:complexType>
  194. <xs:complexType name="BindablePropertyType">
  195. <xs:attribute name="name" type="xs:string" use="required"/>
  196. <xs:attribute name="type" type="xs:string" use="required"/>
  197. <xs:attribute name="mode" type="tns:BindingModeEnum" default="OneWay"/>
  198. <xs:attribute name="default-value" type="xs:string"/>
  199. <xs:attribute name="dependency-property" type="xs:boolean" default="false"/>
  200. </xs:complexType>
  201. <xs:simpleType name="BindingModeEnum">
  202. <xs:restriction base="xs:string">
  203. <xs:enumeration value="OneWay"/>
  204. <xs:enumeration value="TwoWay"/>
  205. <xs:enumeration value="OneTime"/>
  206. <xs:enumeration value="OneWayToSource"/>
  207. </xs:restriction>
  208. </xs:simpleType>
  209. <!-- Constraints -->
  210. <xs:complexType name="ConstraintsType">
  211. <xs:sequence>
  212. <xs:element name="allowed-parents" type="xs:string" minOccurs="0"/>
  213. <xs:element name="allowed-children" type="xs:string" minOccurs="0"/>
  214. <xs:element name="container" type="xs:boolean" minOccurs="0"/>
  215. <xs:element name="max-children" type="xs:string" minOccurs="0"/>
  216. <xs:element name="requires-structure" type="xs:string" minOccurs="0"/>
  217. <xs:element name="required-slots" type="xs:string" minOccurs="0"/>
  218. <!-- ENHANCEMENT: v1.3 additional constraints -->
  219. <xs:element name="platform-constraints" type="tns:PlatformConstraintsType" minOccurs="0"/>
  220. <xs:element name="performance-hints" type="tns:PerformanceHintsType" minOccurs="0"/>
  221. </xs:sequence>
  222. </xs:complexType>
  223. <!-- ENHANCEMENT: Platform Constraints Type -->
  224. <xs:complexType name="PlatformConstraintsType">
  225. <xs:sequence>
  226. <xs:element name="platform-constraint" type="tns:PlatformConstraintType" maxOccurs="unbounded"/>
  227. </xs:sequence>
  228. </xs:complexType>
  229. <xs:complexType name="PlatformConstraintType">
  230. <xs:attribute name="platform" type="tns:PlatformEnum" use="required"/>
  231. <xs:attribute name="min-version" type="xs:string"/>
  232. <xs:attribute name="max-version" type="xs:string"/>
  233. <xs:attribute name="feature-required" type="xs:string"/>
  234. <xs:attribute name="alternative-control" type="xs:string"/>
  235. </xs:complexType>
  236. <!-- ENHANCEMENT: Performance Hints Type -->
  237. <xs:complexType name="PerformanceHintsType">
  238. <xs:attribute name="virtualization-supported" type="xs:boolean" default="false"/>
  239. <xs:attribute name="heavy-rendering" type="xs:boolean" default="false"/>
  240. <xs:attribute name="memory-intensive" type="xs:boolean" default="false"/>
  241. <xs:attribute name="ui-thread-blocking" type="xs:boolean" default="false"/>
  242. <xs:attribute name="recommended-max-items" type="xs:int"/>
  243. </xs:complexType>
  244. <!-- Attributes -->
  245. <xs:complexType name="AttributesType">
  246. <xs:sequence>
  247. <xs:element name="attribute" type="tns:AttributeType" maxOccurs="unbounded"/>
  248. </xs:sequence>
  249. </xs:complexType>
  250. <xs:complexType name="AttributeType">
  251. <xs:attribute name="name" type="xs:string" use="required"/>
  252. <xs:attribute name="type" type="tns:AttributeTypeEnum" use="required"/>
  253. <xs:attribute name="default" type="xs:string"/>
  254. <xs:attribute name="required" type="xs:boolean" default="false"/>
  255. <xs:attribute name="min" type="xs:int"/>
  256. <xs:attribute name="max" type="xs:int"/>
  257. <xs:attribute name="values" type="xs:string"/>
  258. <!-- ENHANCEMENT: v1.3 attribute enhancements -->
  259. <xs:attribute name="deprecated" type="xs:boolean" default="false"/>
  260. <xs:attribute name="platform-specific" type="tns:PlatformEnum"/>
  261. <xs:attribute name="validation-pattern" type="xs:string"/>
  262. <xs:attribute name="category" type="xs:string"/>
  263. <xs:attribute name="description" type="xs:string"/>
  264. </xs:complexType>
  265. <!-- ENHANCEMENT: Expanded Attribute Type Enumeration -->
  266. <xs:simpleType name="AttributeTypeEnum">
  267. <xs:restriction base="xs:string">
  268. <xs:enumeration value="string"/>
  269. <xs:enumeration value="int"/>
  270. <xs:enumeration value="bool"/>
  271. <xs:enumeration value="enum"/>
  272. <xs:enumeration value="color"/>
  273. <xs:enumeration value="date"/>
  274. <xs:enumeration value="datetime"/>
  275. <xs:enumeration value="timespan"/>
  276. <xs:enumeration value="icon"/>
  277. <xs:enumeration value="image"/>
  278. <xs:enumeration value="object"/>
  279. <xs:enumeration value="decimal"/>
  280. <xs:enumeration value="float"/>
  281. <xs:enumeration value="double"/>
  282. <xs:enumeration value="char"/>
  283. <xs:enumeration value="font"/>
  284. <xs:enumeration value="size"/>
  285. <xs:enumeration value="point"/>
  286. <xs:enumeration value="padding"/>
  287. <xs:enumeration value="thickness"/>
  288. <xs:enumeration value="corner-radius"/>
  289. <xs:enumeration value="brush"/>
  290. <xs:enumeration value="geometry"/>
  291. <!-- ENHANCEMENT: v1.3 new types -->
  292. <xs:enumeration value="command"/>
  293. <xs:enumeration value="binding"/>
  294. <xs:enumeration value="template"/>
  295. <xs:enumeration value="style"/>
  296. <xs:enumeration value="resource"/>
  297. <xs:enumeration value="converter"/>
  298. <xs:enumeration value="validator"/>
  299. <xs:enumeration value="collection"/>
  300. <xs:enumeration value="uri"/>
  301. <xs:enumeration value="version"/>
  302. </xs:restriction>
  303. </xs:simpleType>
  304. <!-- Behavior -->
  305. <xs:complexType name="BehaviorType">
  306. <xs:sequence>
  307. <xs:element name="event" type="tns:EventType" maxOccurs="unbounded"/>
  308. <!-- ENHANCEMENT: v1.3 behavior enhancements -->
  309. <xs:element name="command" type="tns:CommandType" minOccurs="0" maxOccurs="unbounded"/>
  310. <xs:element name="gesture" type="tns:GestureType" minOccurs="0" maxOccurs="unbounded"/>
  311. </xs:sequence>
  312. </xs:complexType>
  313. <xs:complexType name="EventType">
  314. <xs:attribute name="name" type="xs:string" use="required"/>
  315. <xs:attribute name="alias" type="xs:string"/>
  316. <xs:attribute name="required" type="xs:boolean" default="false"/>
  317. <xs:attribute name="handler-required" type="xs:boolean" default="false"/>
  318. <xs:attribute name="bubbles" type="xs:boolean" default="false"/>
  319. <xs:attribute name="parameters" type="xs:string"/>
  320. <!-- ENHANCEMENT: v1.3 event enhancements -->
  321. <xs:attribute name="async" type="xs:boolean" default="false"/>
  322. <xs:attribute name="cancelable" type="xs:boolean" default="false"/>
  323. <xs:attribute name="platform-specific" type="tns:PlatformEnum"/>
  324. <xs:attribute name="accessibility-event" type="xs:boolean" default="false"/>
  325. </xs:complexType>
  326. <!-- ENHANCEMENT: Command Type -->
  327. <xs:complexType name="CommandType">
  328. <xs:attribute name="name" type="xs:string" use="required"/>
  329. <xs:attribute name="can-execute-property" type="xs:string"/>
  330. <xs:attribute name="parameter-type" type="xs:string"/>
  331. <xs:attribute name="async" type="xs:boolean" default="false"/>
  332. <xs:attribute name="description" type="xs:string"/>
  333. </xs:complexType>
  334. <!-- ENHANCEMENT: Gesture Type -->
  335. <xs:complexType name="GestureType">
  336. <xs:attribute name="name" type="xs:string" use="required"/>
  337. <xs:attribute name="type" type="tns:GestureTypeEnum" use="required"/>
  338. <xs:attribute name="platform-specific" type="tns:PlatformEnum"/>
  339. <xs:attribute name="description" type="xs:string"/>
  340. </xs:complexType>
  341. <xs:simpleType name="GestureTypeEnum">
  342. <xs:restriction base="xs:string">
  343. <xs:enumeration value="tap"/>
  344. <xs:enumeration value="double-tap"/>
  345. <xs:enumeration value="long-press"/>
  346. <xs:enumeration value="swipe"/>
  347. <xs:enumeration value="pinch"/>
  348. <xs:enumeration value="rotate"/>
  349. <xs:enumeration value="pan"/>
  350. <xs:enumeration value="drag"/>
  351. <xs:enumeration value="flick"/>
  352. </xs:restriction>
  353. </xs:simpleType>
  354. <!-- Control Structure (simplified for patterns) -->
  355. <xs:complexType name="ControlStructureType">
  356. <xs:choice maxOccurs="unbounded">
  357. <xs:element name="items" type="tns:ItemsType"/>
  358. <xs:element name="menu-items" type="tns:MenuItemsType"/>
  359. <xs:element name="columns" type="tns:ColumnsType"/>
  360. <xs:element name="children" type="tns:ChildrenType"/>
  361. <xs:element name="selected-items" type="tns:SelectedItemsType"/>
  362. <xs:element name="context-menu" type="tns:ContextMenuType"/>
  363. <xs:element name="panel1" type="tns:PanelType"/>
  364. <xs:element name="panel2" type="tns:PanelType"/>
  365. <xs:element name="pane" type="tns:PaneType"/>
  366. <xs:element name="content" type="tns:ContentType"/>
  367. <xs:element name="grid-definitions" type="tns:GridDefinitionsType"/>
  368. <!-- ENHANCEMENT: v1.3 new structure types -->
  369. <xs:element name="templates" type="tns:TemplatesType"/>
  370. <xs:element name="resources" type="tns:ResourcesType"/>
  371. <xs:element name="animations" type="tns:AnimationsType"/>
  372. </xs:choice>
  373. </xs:complexType>
  374. <!-- ENHANCEMENT: Templates Type -->
  375. <xs:complexType name="TemplatesType">
  376. <xs:sequence>
  377. <xs:element name="template" type="tns:TemplateDefinitionType" maxOccurs="unbounded"/>
  378. </xs:sequence>
  379. </xs:complexType>
  380. <xs:complexType name="TemplateDefinitionType">
  381. <xs:attribute name="name" type="xs:string" use="required"/>
  382. <xs:attribute name="type" type="tns:TemplateTypeEnum" use="required"/>
  383. <xs:attribute name="target-type" type="xs:string"/>
  384. <xs:attribute name="data-type" type="xs:string"/>
  385. </xs:complexType>
  386. <xs:simpleType name="TemplateTypeEnum">
  387. <xs:restriction base="xs:string">
  388. <xs:enumeration value="control"/>
  389. <xs:enumeration value="data"/>
  390. <xs:enumeration value="item"/>
  391. <xs:enumeration value="header"/>
  392. <xs:enumeration value="footer"/>
  393. <xs:enumeration value="cell"/>
  394. </xs:restriction>
  395. </xs:simpleType>
  396. <!-- ENHANCEMENT: Resources Type -->
  397. <xs:complexType name="ResourcesType">
  398. <xs:sequence>
  399. <xs:element name="resource" type="tns:ResourceDefinitionType" maxOccurs="unbounded"/>
  400. </xs:sequence>
  401. </xs:complexType>
  402. <xs:complexType name="ResourceDefinitionType">
  403. <xs:attribute name="key" type="xs:string" use="required"/>
  404. <xs:attribute name="type" type="tns:ResourceTypeEnum" use="required"/>
  405. <xs:attribute name="value" type="xs:string"/>
  406. <xs:attribute name="source" type="xs:string"/>
  407. </xs:complexType>
  408. <xs:simpleType name="ResourceTypeEnum">
  409. <xs:restriction base="xs:string">
  410. <xs:enumeration value="string"/>
  411. <xs:enumeration value="brush"/>
  412. <xs:enumeration value="color"/>
  413. <xs:enumeration value="font"/>
  414. <xs:enumeration value="image"/>
  415. <xs:enumeration value="style"/>
  416. <xs:enumeration value="template"/>
  417. </xs:restriction>
  418. </xs:simpleType>
  419. <!-- ENHANCEMENT: Animations Type -->
  420. <xs:complexType name="AnimationsType">
  421. <xs:sequence>
  422. <xs:element name="animation" type="tns:AnimationDefinitionType" maxOccurs="unbounded"/>
  423. </xs:sequence>
  424. </xs:complexType>
  425. <xs:complexType name="AnimationDefinitionType">
  426. <xs:attribute name="name" type="xs:string" use="required"/>
  427. <xs:attribute name="type" type="tns:AnimationTypeEnum" use="required"/>
  428. <xs:attribute name="duration" type="xs:string" default="0.3s"/>
  429. <xs:attribute name="easing" type="tns:EasingEnum" default="ease"/>
  430. <xs:attribute name="trigger" type="xs:string"/>
  431. </xs:complexType>
  432. <xs:simpleType name="AnimationTypeEnum">
  433. <xs:restriction base="xs:string">
  434. <xs:enumeration value="fade"/>
  435. <xs:enumeration value="slide"/>
  436. <xs:enumeration value="scale"/>
  437. <xs:enumeration value="rotate"/>
  438. <xs:enumeration value="transform"/>
  439. <xs:enumeration value="custom"/>
  440. </xs:restriction>
  441. </xs:simpleType>
  442. <xs:simpleType name="EasingEnum">
  443. <xs:restriction base="xs:string">
  444. <xs:enumeration value="linear"/>
  445. <xs:enumeration value="ease"/>
  446. <xs:enumeration value="ease-in"/>
  447. <xs:enumeration value="ease-out"/>
  448. <xs:enumeration value="ease-in-out"/>
  449. <xs:enumeration value="bounce"/>
  450. <xs:enumeration value="elastic"/>
  451. </xs:restriction>
  452. </xs:simpleType>
  453. <!-- Structure Definition -->
  454. <xs:complexType name="StructureType">
  455. <xs:sequence>
  456. <xs:element name="description" type="xs:string" minOccurs="0"/>
  457. <xs:element name="constraints" type="tns:ConstraintsType" minOccurs="0"/>
  458. <xs:element name="attributes" type="tns:AttributesType" minOccurs="0"/>
  459. <xs:element name="template" type="tns:TemplateType"/>
  460. <!-- ENHANCEMENT: v1.3 structure enhancements -->
  461. <xs:element name="composition" type="tns:CompositionType" minOccurs="0"/>
  462. </xs:sequence>
  463. <xs:attribute name="name" type="xs:string" use="required"/>
  464. <xs:attribute name="type" type="xs:string" use="required"/>
  465. <xs:attribute name="category" type="tns:ControlCategoryEnum" use="required"/>
  466. <xs:attribute name="inherits" type="xs:string"/>
  467. <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
  468. <!-- ENHANCEMENT: Version tracking -->
  469. <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
  470. </xs:complexType>
  471. <!-- ENHANCEMENT: Composition Type -->
  472. <xs:complexType name="CompositionType">
  473. <xs:sequence>
  474. <xs:element name="component" type="tns:ComponentType" maxOccurs="unbounded"/>
  475. </xs:sequence>
  476. </xs:complexType>
  477. <xs:complexType name="ComponentType">
  478. <xs:attribute name="name" type="xs:string" use="required"/>
  479. <xs:attribute name="type" type="xs:string" use="required"/>
  480. <xs:attribute name="required" type="xs:boolean" default="false"/>
  481. <xs:attribute name="multiple" type="xs:boolean" default="false"/>
  482. </xs:complexType>
  483. <!-- Wireframe Definition -->
  484. <xs:complexType name="WireframeType">
  485. <xs:sequence>
  486. <xs:element name="description" type="xs:string" minOccurs="0"/>
  487. <xs:element name="template" type="tns:TemplateType"/>
  488. <!-- ENHANCEMENT: v1.3 wireframe enhancements -->
  489. <xs:element name="responsive" type="tns:ResponsiveType" minOccurs="0"/>
  490. <xs:element name="theme-support" type="tns:ThemeSupportType" minOccurs="0"/>
  491. </xs:sequence>
  492. <xs:attribute name="name" type="xs:string" use="required"/>
  493. <xs:attribute name="type" type="xs:string" use="required"/>
  494. <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
  495. <!-- ENHANCEMENT: Version tracking -->
  496. <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
  497. </xs:complexType>
  498. <!-- ENHANCEMENT: Responsive Type -->
  499. <xs:complexType name="ResponsiveType">
  500. <xs:sequence>
  501. <xs:element name="breakpoint" type="tns:BreakpointType" maxOccurs="unbounded"/>
  502. </xs:sequence>
  503. </xs:complexType>
  504. <xs:complexType name="BreakpointType">
  505. <xs:attribute name="name" type="xs:string" use="required"/>
  506. <xs:attribute name="min-width" type="xs:int"/>
  507. <xs:attribute name="max-width" type="xs:int"/>
  508. <xs:attribute name="orientation" type="tns:OrientationEnum"/>
  509. <xs:attribute name="template-override" type="xs:string"/>
  510. </xs:complexType>
  511. <xs:simpleType name="OrientationEnum">
  512. <xs:restriction base="xs:string">
  513. <xs:enumeration value="portrait"/>
  514. <xs:enumeration value="landscape"/>
  515. <xs:enumeration value="any"/>
  516. </xs:restriction>
  517. </xs:simpleType>
  518. <!-- ENHANCEMENT: Theme Support Type -->
  519. <xs:complexType name="ThemeSupportType">
  520. <xs:sequence>
  521. <xs:element name="theme-variant" type="tns:ThemeVariantType" maxOccurs="unbounded"/>
  522. </xs:sequence>
  523. </xs:complexType>
  524. <xs:complexType name="ThemeVariantType">
  525. <xs:attribute name="name" type="xs:string" use="required"/>
  526. <xs:attribute name="type" type="tns:ThemeTypeEnum" use="required"/>
  527. <xs:attribute name="resource-override" type="xs:string"/>
  528. </xs:complexType>
  529. <xs:simpleType name="ThemeTypeEnum">
  530. <xs:restriction base="xs:string">
  531. <xs:enumeration value="light"/>
  532. <xs:enumeration value="dark"/>
  533. <xs:enumeration value="high-contrast"/>
  534. <xs:enumeration value="custom"/>
  535. </xs:restriction>
  536. </xs:simpleType>
  537. <!-- Template (simplified - contains mixed content for flexibility) -->
  538. <xs:complexType name="TemplateType" mixed="true">
  539. <xs:sequence>
  540. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  541. </xs:sequence>
  542. <xs:anyAttribute processContents="lax"/>
  543. </xs:complexType>
  544. <!-- Supporting Types (simplified) -->
  545. <xs:complexType name="ItemsType">
  546. <xs:sequence>
  547. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  548. </xs:sequence>
  549. <xs:attribute name="min-count" type="xs:int" default="0"/>
  550. <xs:attribute name="max-count" type="xs:string" default="unlimited"/>
  551. <xs:attribute name="max-depth" type="xs:int"/>
  552. <!-- ENHANCEMENT: v1.3 virtualization support -->
  553. <xs:attribute name="virtualization" type="xs:boolean" default="false"/>
  554. <xs:attribute name="lazy-loading" type="xs:boolean" default="false"/>
  555. </xs:complexType>
  556. <xs:complexType name="MenuItemsType">
  557. <xs:sequence>
  558. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  559. </xs:sequence>
  560. <xs:attribute name="min-count" type="xs:int" default="1"/>
  561. <xs:attribute name="max-count" type="xs:string" default="unlimited"/>
  562. <xs:attribute name="max-depth" type="xs:int"/>
  563. <!-- ENHANCEMENT: v1.3 menu enhancements -->
  564. <xs:attribute name="dynamic" type="xs:boolean" default="false"/>
  565. <xs:attribute name="context-aware" type="xs:boolean" default="false"/>
  566. </xs:complexType>
  567. <xs:complexType name="ColumnsType">
  568. <xs:sequence>
  569. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  570. </xs:sequence>
  571. <xs:attribute name="min-count" type="xs:int" default="1"/>
  572. <xs:attribute name="max-count" type="xs:int" default="50"/>
  573. <!-- ENHANCEMENT: v1.3 column enhancements -->
  574. <xs:attribute name="auto-generate" type="xs:boolean" default="false"/>
  575. <xs:attribute name="reorderable" type="xs:boolean" default="true"/>
  576. <xs:attribute name="resizable" type="xs:boolean" default="true"/>
  577. </xs:complexType>
  578. <xs:complexType name="ChildrenType">
  579. <xs:sequence>
  580. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  581. </xs:sequence>
  582. <xs:attribute name="allow-multiple" type="xs:boolean" default="true"/>
  583. <!-- ENHANCEMENT: v1.3 children enhancements -->
  584. <xs:attribute name="layout-strategy" type="tns:LayoutStrategyEnum" default="default"/>
  585. </xs:complexType>
  586. <xs:simpleType name="LayoutStrategyEnum">
  587. <xs:restriction base="xs:string">
  588. <xs:enumeration value="default"/>
  589. <xs:enumeration value="stack"/>
  590. <xs:enumeration value="grid"/>
  591. <xs:enumeration value="flow"/>
  592. <xs:enumeration value="absolute"/>
  593. <xs:enumeration value="responsive"/>
  594. </xs:restriction>
  595. </xs:simpleType>
  596. <xs:complexType name="SelectedItemsType">
  597. <xs:attribute name="max-count" type="xs:string" use="required"/>
  598. <!-- ENHANCEMENT: v1.3 selection enhancements -->
  599. <xs:attribute name="selection-mode" type="tns:SelectionModeEnum" default="single"/>
  600. </xs:complexType>
  601. <xs:simpleType name="SelectionModeEnum">
  602. <xs:restriction base="xs:string">
  603. <xs:enumeration value="none"/>
  604. <xs:enumeration value="single"/>
  605. <xs:enumeration value="multiple"/>
  606. <xs:enumeration value="extended"/>
  607. <xs:enumeration value="range"/>
  608. </xs:restriction>
  609. </xs:simpleType>
  610. <xs:complexType name="ContextMenuType">
  611. <xs:attribute name="max-count" type="xs:int" default="1"/>
  612. <!-- ENHANCEMENT: v1.3 context menu enhancements -->
  613. <xs:attribute name="dynamic" type="xs:boolean" default="false"/>
  614. <xs:attribute name="platform-native" type="xs:boolean" default="true"/>
  615. </xs:complexType>
  616. <xs:complexType name="PanelType">
  617. <xs:sequence>
  618. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  619. </xs:sequence>
  620. <xs:attribute name="required" type="xs:boolean" default="true"/>
  621. <!-- ENHANCEMENT: v1.3 panel enhancements -->
  622. <xs:attribute name="collapsible" type="xs:boolean" default="false"/>
  623. <xs:attribute name="resizable" type="xs:boolean" default="false"/>
  624. </xs:complexType>
  625. <xs:complexType name="PaneType">
  626. <xs:sequence>
  627. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  628. </xs:sequence>
  629. <!-- ENHANCEMENT: v1.3 pane enhancements -->
  630. <xs:attribute name="dockable" type="xs:boolean" default="false"/>
  631. <xs:attribute name="floatable" type="xs:boolean" default="false"/>
  632. </xs:complexType>
  633. <xs:complexType name="ContentType">
  634. <xs:sequence>
  635. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  636. </xs:sequence>
  637. <!-- ENHANCEMENT: v1.3 content enhancements -->
  638. <xs:attribute name="scrollable" type="xs:boolean" default="false"/>
  639. <xs:attribute name="virtualized" type="xs:boolean" default="false"/>
  640. </xs:complexType>
  641. <xs:complexType name="GridDefinitionsType">
  642. <xs:sequence>
  643. <xs:element name="row-definitions" type="tns:RowDefinitionsType"/>
  644. <xs:element name="column-definitions" type="tns:ColumnDefinitionsType"/>
  645. </xs:sequence>
  646. <!-- ENHANCEMENT: v1.3 grid enhancements -->
  647. <xs:attribute name="auto-columns" type="xs:boolean" default="false"/>
  648. <xs:attribute name="auto-rows" type="xs:boolean" default="false"/>
  649. </xs:complexType>
  650. <xs:complexType name="RowDefinitionsType">
  651. <xs:sequence>
  652. <xs:element name="row-definition" type="tns:RowDefinitionType" maxOccurs="unbounded"/>
  653. </xs:sequence>
  654. </xs:complexType>
  655. <xs:complexType name="RowDefinitionType">
  656. <xs:attribute name="height" type="xs:string" use="required"/>
  657. <xs:attribute name="min-height" type="xs:string" default="0"/>
  658. <xs:attribute name="max-height" type="xs:string" default="Infinity"/>
  659. <!-- ENHANCEMENT: v1.3 row enhancements -->
  660. <xs:attribute name="shared-size-group" type="xs:string"/>
  661. </xs:complexType>
  662. <xs:complexType name="ColumnDefinitionsType">
  663. <xs:sequence>
  664. <xs:element name="column-definition" type="tns:ColumnDefinitionType" maxOccurs="unbounded"/>
  665. </xs:sequence>
  666. </xs:complexType>
  667. <xs:complexType name="ColumnDefinitionType">
  668. <xs:attribute name="width" type="xs:string" use="required"/>
  669. <xs:attribute name="min-width" type="xs:string" default="0"/>
  670. <xs:attribute name="max-width" type="xs:string" default="Infinity"/>
  671. <!-- ENHANCEMENT: v1.3 column enhancements -->
  672. <xs:attribute name="shared-size-group" type="xs:string"/>
  673. </xs:complexType>
  674. </xs:schema>