ui-layout-basic-controls.xsd 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844
  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-basic-controls"
  4. xmlns:tns="http://quadarax.com/ui-layout-basic-controls"
  5. elementFormDefault="qualified"
  6. version="1.3">
  7. <!-- Basic Control Instance Base Type -->
  8. <xs:complexType name="BasicControlInstanceType" mixed="true">
  9. <xs:group ref="tns:BasicControlContentGroup" minOccurs="0" maxOccurs="unbounded"/>
  10. <!-- Common attributes for all controls -->
  11. <xs:attribute name="name" type="xs:string"/>
  12. <xs:attribute name="enabled" type="xs:boolean" default="true"/>
  13. <xs:attribute name="text" type="xs:string"/>
  14. <xs:attribute name="visible" type="xs:boolean" default="true"/>
  15. <xs:attribute name="data-source" type="xs:string"/>
  16. <xs:attribute name="dock" type="tns:DockEnum" default="none"/>
  17. <xs:attribute name="tooltip" type="xs:string"/>
  18. <xs:attribute name="width" type="xs:int"/>
  19. <xs:attribute name="height" type="xs:int"/>
  20. <xs:attribute name="x" type="xs:int"/>
  21. <xs:attribute name="y" type="xs:int"/>
  22. <xs:attribute name="anchor" type="tns:AnchorEnum" default="none"/>
  23. <xs:attribute name="margin" type="xs:string"/>
  24. <xs:attribute name="padding" type="xs:string"/>
  25. <xs:attribute name="background-color" type="xs:string"/>
  26. <xs:attribute name="foreground-color" type="xs:string"/>
  27. <xs:attribute name="font-family" type="xs:string"/>
  28. <xs:attribute name="font-size" type="xs:int"/>
  29. <xs:attribute name="font-style" type="tns:FontStyleEnum" default="normal"/>
  30. <xs:attribute name="tab-index" type="xs:int" default="0"/>
  31. <xs:attribute name="access-key" type="xs:string"/>
  32. <xs:anyAttribute processContents="lax"/>
  33. </xs:complexType>
  34. <!-- Basic Control Content Group -->
  35. <xs:group name="BasicControlContentGroup">
  36. <xs:choice>
  37. <!-- Display Controls -->
  38. <xs:element name="Label" type="tns:LabelType"/>
  39. <xs:element name="Separator" type="tns:SeparatorType"/>
  40. <xs:element name="Image" type="tns:ImageType"/>
  41. <!-- Input Controls -->
  42. <xs:element name="TextBox" type="tns:TextBoxType"/>
  43. <xs:element name="ComboBox" type="tns:ComboBoxType"/>
  44. <!-- Action Controls -->
  45. <xs:element name="Button" type="tns:ButtonType"/>
  46. <!-- Container Controls -->
  47. <xs:element name="Panel" type="tns:PanelType"/>
  48. <xs:element name="PopupPanel" type="tns:PopupPanelType"/>
  49. <!-- Navigation Controls -->
  50. <xs:element name="Menu" type="tns:MenuType"/>
  51. <!-- List Controls -->
  52. <xs:element name="ListView" type="tns:ListViewType"/>
  53. <xs:element name="Gallery" type="tns:GalleryType"/>
  54. <xs:element name="TreeView" type="tns:TreeViewType"/>
  55. <!-- Structure Elements -->
  56. <xs:element name="ListBoxItem" type="tns:ListBoxItemType"/>
  57. <xs:element name="ListViewItem" type="tns:ListViewItemType"/>
  58. <xs:element name="GalleryItem" type="tns:GalleryItemType"/>
  59. <xs:element name="ColumnItem" type="tns:ColumnItemType"/>
  60. <xs:element name="TreeNode" type="tns:TreeNodeType"/>
  61. <xs:element name="MenuItem" type="tns:MenuItemType"/>
  62. </xs:choice>
  63. </xs:group>
  64. <!-- DISPLAY CONTROLS -->
  65. <!-- Label Control Type -->
  66. <xs:complexType name="LabelType" mixed="true">
  67. <xs:complexContent>
  68. <xs:extension base="tns:BasicControlInstanceType">
  69. <xs:attribute name="auto-size" type="xs:boolean" default="true"/>
  70. <xs:attribute name="text-align" type="tns:TextAlignEnum" default="left"/>
  71. <xs:attribute name="vertical-align" type="tns:VerticalAlignEnum" default="middle"/>
  72. <xs:attribute name="word-wrap" type="xs:boolean" default="false"/>
  73. <xs:attribute name="use-mnemonic" type="xs:boolean" default="true"/>
  74. <xs:attribute name="associated-control" type="xs:string"/>
  75. </xs:extension>
  76. </xs:complexContent>
  77. </xs:complexType>
  78. <!-- Separator Control Type -->
  79. <xs:complexType name="SeparatorType" mixed="true">
  80. <xs:complexContent>
  81. <xs:extension base="tns:BasicControlInstanceType">
  82. <xs:attribute name="orientation" type="tns:OrientationEnum" default="horizontal"/>
  83. <xs:attribute name="line-style" type="tns:LineStyleEnum" default="solid"/>
  84. <xs:attribute name="line-width" type="xs:int" default="1"/>
  85. <xs:attribute name="line-color" type="xs:string" default="gray"/>
  86. <xs:attribute name="auto-size" type="xs:boolean" default="true"/>
  87. <xs:attribute name="margin-start" type="xs:int" default="0"/>
  88. <xs:attribute name="margin-end" type="xs:int" default="0"/>
  89. </xs:extension>
  90. </xs:complexContent>
  91. </xs:complexType>
  92. <!-- Image Control Type -->
  93. <xs:complexType name="ImageType" mixed="true">
  94. <xs:complexContent>
  95. <xs:extension base="tns:BasicControlInstanceType">
  96. <xs:attribute name="source" type="xs:string" use="required"/>
  97. <xs:attribute name="source-type" type="tns:ImageSourceTypeEnum" default="file"/>
  98. <xs:attribute name="size-mode" type="tns:ImageSizeModeEnum" default="normal"/>
  99. <xs:attribute name="aspect-ratio" type="tns:AspectRatioEnum" default="keep"/>
  100. <xs:attribute name="interpolation-mode" type="tns:InterpolationModeEnum" default="default"/>
  101. <xs:attribute name="error-image" type="xs:string"/>
  102. <xs:attribute name="loading-image" type="xs:string"/>
  103. </xs:extension>
  104. </xs:complexContent>
  105. </xs:complexType>
  106. <!-- INPUT CONTROLS -->
  107. <!-- TextBox Control Type -->
  108. <xs:complexType name="TextBoxType" mixed="true">
  109. <xs:complexContent>
  110. <xs:extension base="tns:BasicControlInstanceType">
  111. <xs:attribute name="max-length" type="xs:int" default="32767"/>
  112. <xs:attribute name="password-char" type="xs:string"/>
  113. <xs:attribute name="read-only" type="xs:boolean" default="false"/>
  114. <xs:attribute name="multiline" type="xs:boolean" default="false"/>
  115. <xs:attribute name="word-wrap" type="xs:boolean" default="true"/>
  116. <xs:attribute name="accept-returns" type="xs:boolean" default="false"/>
  117. <xs:attribute name="accept-tabs" type="xs:boolean" default="false"/>
  118. <xs:attribute name="auto-complete-mode" type="tns:AutoCompleteModeEnum" default="none"/>
  119. <xs:attribute name="auto-complete-source" type="xs:string"/>
  120. </xs:extension>
  121. </xs:complexContent>
  122. </xs:complexType>
  123. <!-- ComboBox Control Type -->
  124. <xs:complexType name="ComboBoxType" mixed="true">
  125. <xs:complexContent>
  126. <xs:extension base="tns:BasicControlInstanceType">
  127. <xs:sequence>
  128. <xs:element name="items" type="tns:ComboBoxItemsType" minOccurs="0"/>
  129. </xs:sequence>
  130. <xs:attribute name="dropdown-style" type="tns:DropdownStyleEnum" default="dropdown"/>
  131. <xs:attribute name="max-dropdown-items" type="xs:int" default="8"/>
  132. <xs:attribute name="selected-index" type="xs:int" default="-1"/>
  133. <xs:attribute name="selected-value" type="xs:string"/>
  134. <xs:attribute name="auto-complete-mode" type="tns:AutoCompleteModeEnum" default="none"/>
  135. <xs:attribute name="auto-complete-source" type="xs:string"/>
  136. <xs:attribute name="sorted" type="xs:boolean" default="false"/>
  137. </xs:extension>
  138. </xs:complexContent>
  139. </xs:complexType>
  140. <!-- ACTION CONTROLS -->
  141. <!-- Button Control Type -->
  142. <xs:complexType name="ButtonType" mixed="true">
  143. <xs:complexContent>
  144. <xs:extension base="tns:BasicControlInstanceType">
  145. <xs:attribute name="type" type="tns:ButtonTypeEnum" default="text"/>
  146. <xs:attribute name="image" type="xs:string"/>
  147. <xs:attribute name="image-position" type="tns:ImagePositionEnum" default="left"/>
  148. <xs:attribute name="style" type="tns:ButtonStyleEnum" default="normal"/>
  149. <xs:attribute name="size" type="tns:ButtonSizeEnum" default="medium"/>
  150. <xs:attribute name="auto-size" type="xs:boolean" default="false"/>
  151. <xs:attribute name="is-default" type="xs:boolean" default="false"/>
  152. <xs:attribute name="is-cancel" type="xs:boolean" default="false"/>
  153. <xs:attribute name="flat-style" type="xs:boolean" default="false"/>
  154. </xs:extension>
  155. </xs:complexContent>
  156. </xs:complexType>
  157. <!-- CONTAINER CONTROLS -->
  158. <!-- Panel Control Type -->
  159. <xs:complexType name="PanelType" mixed="true">
  160. <xs:complexContent>
  161. <xs:extension base="tns:BasicControlInstanceType">
  162. <xs:attribute name="border-style" type="tns:BorderStyleEnum" default="none"/>
  163. <xs:attribute name="border-width" type="xs:int" default="0"/>
  164. <xs:attribute name="border-color" type="xs:string" default="black"/>
  165. <xs:attribute name="auto-scroll" type="xs:boolean" default="false"/>
  166. <xs:attribute name="layout-type" type="tns:LayoutTypeEnum" default="absolute"/>
  167. <xs:attribute name="flow-direction" type="tns:FlowDirectionEnum" default="left-to-right"/>
  168. </xs:extension>
  169. </xs:complexContent>
  170. </xs:complexType>
  171. <!-- PopupPanel Control Type -->
  172. <xs:complexType name="PopupPanelType" mixed="true">
  173. <xs:complexContent>
  174. <xs:extension base="tns:PanelType">
  175. <xs:attribute name="popup-mode" type="tns:PopupModeEnum" default="modeless"/>
  176. <xs:attribute name="auto-close" type="xs:boolean" default="true"/>
  177. <xs:attribute name="close-on-escape" type="xs:boolean" default="true"/>
  178. <xs:attribute name="close-on-click-outside" type="xs:boolean" default="true"/>
  179. <xs:attribute name="show-close-button" type="xs:boolean" default="false"/>
  180. <xs:attribute name="resizable" type="xs:boolean" default="false"/>
  181. <xs:attribute name="movable" type="xs:boolean" default="false"/>
  182. <xs:attribute name="fade-in" type="xs:boolean" default="false"/>
  183. <xs:attribute name="fade-out" type="xs:boolean" default="false"/>
  184. <xs:attribute name="animation-duration" type="xs:int" default="200"/>
  185. </xs:extension>
  186. </xs:complexContent>
  187. </xs:complexType>
  188. <!-- NAVIGATION CONTROLS -->
  189. <!-- Menu Control Type -->
  190. <xs:complexType name="MenuType" mixed="true">
  191. <xs:complexContent>
  192. <xs:extension base="tns:BasicControlInstanceType">
  193. <xs:sequence>
  194. <xs:element name="items" type="tns:MenuItemsType" minOccurs="0"/>
  195. </xs:sequence>
  196. <xs:attribute name="orientation" type="tns:OrientationEnum" default="horizontal"/>
  197. <xs:attribute name="show-check-margin" type="xs:boolean" default="true"/>
  198. <xs:attribute name="show-image-margin" type="xs:boolean" default="true"/>
  199. <xs:attribute name="right-to-left" type="xs:boolean" default="false"/>
  200. </xs:extension>
  201. </xs:complexContent>
  202. </xs:complexType>
  203. <!-- LIST CONTROLS -->
  204. <!-- ListView Control Type -->
  205. <xs:complexType name="ListViewType" mixed="true">
  206. <xs:complexContent>
  207. <xs:extension base="tns:BasicControlInstanceType">
  208. <xs:sequence>
  209. <xs:element name="items" type="tns:ListViewItemsType" minOccurs="0"/>
  210. <xs:element name="columns" type="tns:ColumnsType" minOccurs="0"/>
  211. </xs:sequence>
  212. <xs:attribute name="view-mode" type="tns:ListViewModeEnum" default="details"/>
  213. <xs:attribute name="multi-select" type="xs:boolean" default="false"/>
  214. <xs:attribute name="full-row-select" type="xs:boolean" default="false"/>
  215. <xs:attribute name="grid-lines" type="xs:boolean" default="false"/>
  216. <xs:attribute name="header-style" type="tns:HeaderStyleEnum" default="clickable"/>
  217. <xs:attribute name="sorting" type="tns:SortingEnum" default="none"/>
  218. <xs:attribute name="allow-column-reorder" type="xs:boolean" default="false"/>
  219. <xs:attribute name="scrollable" type="xs:boolean" default="true"/>
  220. <xs:attribute name="border-style" type="tns:BorderStyleEnum" default="single"/>
  221. <xs:attribute name="auto-arrange" type="xs:boolean" default="true"/>
  222. <xs:attribute name="label-edit" type="xs:boolean" default="false"/>
  223. <xs:attribute name="label-wrap" type="xs:boolean" default="false"/>
  224. <xs:attribute name="hide-selection" type="xs:boolean" default="true"/>
  225. <xs:attribute name="hover-selection" type="xs:boolean" default="false"/>
  226. <xs:attribute name="hot-tracking" type="xs:boolean" default="false"/>
  227. <xs:attribute name="virtual-mode" type="xs:boolean" default="false"/>
  228. <xs:attribute name="virtual-list-size" type="xs:int" default="0"/>
  229. </xs:extension>
  230. </xs:complexContent>
  231. </xs:complexType>
  232. <!-- Gallery Control Type -->
  233. <xs:complexType name="GalleryType" mixed="true">
  234. <xs:complexContent>
  235. <xs:extension base="tns:BasicControlInstanceType">
  236. <xs:sequence>
  237. <xs:element name="items" type="tns:GalleryItemsType" minOccurs="0"/>
  238. <xs:element name="box-template" type="tns:BoxTemplateType" minOccurs="1"/>
  239. </xs:sequence>
  240. <!-- ListView inherited attributes -->
  241. <xs:attribute name="view-mode" type="tns:GalleryViewModeEnum" default="gallery"/>
  242. <xs:attribute name="multi-select" type="xs:boolean" default="false"/>
  243. <xs:attribute name="full-row-select" type="xs:boolean" default="false"/>
  244. <xs:attribute name="grid-lines" type="xs:boolean" default="false"/>
  245. <xs:attribute name="header-style" type="tns:HeaderStyleEnum" default="none"/>
  246. <xs:attribute name="sorting" type="tns:SortingEnum" default="none"/>
  247. <xs:attribute name="allow-column-reorder" type="xs:boolean" default="false"/>
  248. <xs:attribute name="scrollable" type="xs:boolean" default="true"/>
  249. <xs:attribute name="border-style" type="tns:BorderStyleEnum" default="single"/>
  250. <xs:attribute name="auto-arrange" type="xs:boolean" default="true"/>
  251. <xs:attribute name="label-edit" type="xs:boolean" default="false"/>
  252. <xs:attribute name="label-wrap" type="xs:boolean" default="false"/>
  253. <xs:attribute name="hide-selection" type="xs:boolean" default="true"/>
  254. <xs:attribute name="hover-selection" type="xs:boolean" default="false"/>
  255. <xs:attribute name="hot-tracking" type="xs:boolean" default="false"/>
  256. <xs:attribute name="virtual-mode" type="xs:boolean" default="false"/>
  257. <xs:attribute name="virtual-list-size" type="xs:int" default="0"/>
  258. <!-- Gallery-specific attributes -->
  259. <xs:attribute name="image-width" type="xs:int" default="64"/>
  260. <xs:attribute name="image-height" type="xs:int" default="64"/>
  261. <xs:attribute name="box-width" type="xs:int" default="120"/>
  262. <xs:attribute name="box-height" type="xs:int" default="120"/>
  263. <xs:attribute name="paging-enabled" type="xs:boolean" default="false"/>
  264. <xs:attribute name="paging-page-size" type="xs:int" default="50"/>
  265. </xs:extension>
  266. </xs:complexContent>
  267. </xs:complexType>
  268. <!-- TreeView Control Type -->
  269. <xs:complexType name="TreeViewType" mixed="true">
  270. <xs:complexContent>
  271. <xs:extension base="tns:BasicControlInstanceType">
  272. <xs:sequence>
  273. <xs:element name="nodes" type="tns:TreeNodesType" minOccurs="0"/>
  274. </xs:sequence>
  275. <xs:attribute name="show-lines" type="xs:boolean" default="true"/>
  276. <xs:attribute name="show-plus-minus" type="xs:boolean" default="true"/>
  277. <xs:attribute name="show-root-lines" type="xs:boolean" default="true"/>
  278. <xs:attribute name="has-check-boxes" type="xs:boolean" default="false"/>
  279. <xs:attribute name="full-row-select" type="xs:boolean" default="false"/>
  280. <xs:attribute name="hot-tracking" type="xs:boolean" default="false"/>
  281. <xs:attribute name="hide-selection" type="xs:boolean" default="true"/>
  282. <xs:attribute name="label-edit" type="xs:boolean" default="false"/>
  283. <xs:attribute name="scrollable" type="xs:boolean" default="true"/>
  284. <xs:attribute name="sorted" type="xs:boolean" default="false"/>
  285. <xs:attribute name="path-separator" type="xs:string" default="\"/>
  286. <xs:attribute name="indent" type="xs:int" default="19"/>
  287. <xs:attribute name="item-height" type="xs:int" default="16"/>
  288. </xs:extension>
  289. </xs:complexContent>
  290. </xs:complexType>
  291. <!-- STRUCTURE TYPES -->
  292. <!-- ListBoxItem Type -->
  293. <xs:complexType name="ListBoxItemType">
  294. <xs:attribute name="value" type="xs:string" use="required"/>
  295. <xs:attribute name="text" type="xs:string" use="required"/>
  296. <xs:attribute name="selected" type="xs:boolean" default="false"/>
  297. <xs:attribute name="enabled" type="xs:boolean" default="true"/>
  298. <xs:attribute name="image" type="xs:string"/>
  299. <xs:attribute name="tooltip" type="xs:string"/>
  300. <xs:attribute name="tag" type="xs:string"/>
  301. </xs:complexType>
  302. <!-- ListViewItem Type -->
  303. <xs:complexType name="ListViewItemType">
  304. <xs:sequence>
  305. <xs:element name="sub-items" minOccurs="0">
  306. <xs:complexType>
  307. <xs:sequence>
  308. <xs:element name="sub-item" maxOccurs="unbounded">
  309. <xs:complexType>
  310. <xs:attribute name="text" type="xs:string" use="required"/>
  311. </xs:complexType>
  312. </xs:element>
  313. </xs:sequence>
  314. </xs:complexType>
  315. </xs:element>
  316. </xs:sequence>
  317. <xs:attribute name="text" type="xs:string" use="required"/>
  318. <xs:attribute name="value" type="xs:string"/>
  319. <xs:attribute name="selected" type="xs:boolean" default="false"/>
  320. <xs:attribute name="checked" type="xs:boolean" default="false"/>
  321. <xs:attribute name="focused" type="xs:boolean" default="false"/>
  322. <xs:attribute name="image-index" type="xs:int" default="-1"/>
  323. <xs:attribute name="image-key" type="xs:string"/>
  324. <xs:attribute name="state-image-index" type="xs:int" default="-1"/>
  325. <xs:attribute name="group" type="xs:string"/>
  326. <xs:attribute name="use-item-style-for-sub-items" type="xs:boolean" default="true"/>
  327. <xs:attribute name="tag" type="xs:string"/>
  328. </xs:complexType>
  329. <!-- GalleryItem Type -->
  330. <xs:complexType name="GalleryItemType">
  331. <xs:sequence>
  332. <xs:element name="custom-properties" minOccurs="0">
  333. <xs:complexType>
  334. <xs:sequence>
  335. <xs:element name="property" type="tns:CustomPropertyType" maxOccurs="unbounded"/>
  336. </xs:sequence>
  337. </xs:complexType>
  338. </xs:element>
  339. <xs:element name="data-fields" minOccurs="0">
  340. <xs:complexType>
  341. <xs:sequence>
  342. <xs:element name="field" type="tns:DataFieldType" maxOccurs="unbounded"/>
  343. </xs:sequence>
  344. </xs:complexType>
  345. </xs:element>
  346. </xs:sequence>
  347. <xs:attribute name="text" type="xs:string" use="required"/>
  348. <xs:attribute name="value" type="xs:string"/>
  349. <xs:attribute name="selected" type="xs:boolean" default="false"/>
  350. <xs:attribute name="checked" type="xs:boolean" default="false"/>
  351. <xs:attribute name="focused" type="xs:boolean" default="false"/>
  352. <xs:attribute name="image" type="xs:string"/>
  353. <xs:attribute name="image-index" type="xs:int" default="-1"/>
  354. <xs:attribute name="image-key" type="xs:string"/>
  355. <xs:attribute name="thumbnail" type="xs:string"/>
  356. <xs:attribute name="group" type="xs:string"/>
  357. <xs:attribute name="tooltip" type="xs:string"/>
  358. <xs:attribute name="tag" type="xs:string"/>
  359. <xs:attribute name="box-data" type="xs:string"/>
  360. <xs:attribute name="template-override" type="xs:string"/>
  361. </xs:complexType>
  362. <!-- Box Template Type -->
  363. <xs:complexType name="BoxTemplateType">
  364. <xs:sequence>
  365. <xs:element name="template-elements">
  366. <xs:complexType>
  367. <xs:sequence>
  368. <xs:element name="element" type="tns:TemplateElementType" maxOccurs="unbounded"/>
  369. </xs:sequence>
  370. </xs:complexType>
  371. </xs:element>
  372. </xs:sequence>
  373. <xs:attribute name="name" type="xs:string" use="required"/>
  374. <xs:attribute name="width" type="xs:int" default="120"/>
  375. <xs:attribute name="height" type="xs:int" default="120"/>
  376. <xs:attribute name="background-color" type="xs:string" default="transparent"/>
  377. <xs:attribute name="border-color" type="xs:string" default="gray"/>
  378. <xs:attribute name="border-style" type="tns:BorderStyleEnum" default="solid"/>
  379. <xs:attribute name="border-width" type="xs:int" default="1"/>
  380. <xs:attribute name="padding" type="xs:string" default="4,4,4,4"/>
  381. <xs:attribute name="margin" type="xs:string" default="2,2,2,2"/>
  382. </xs:complexType>
  383. <!-- Template Element Type -->
  384. <xs:complexType name="TemplateElementType">
  385. <xs:attribute name="name" type="xs:string" use="required"/>
  386. <xs:attribute name="type" type="tns:TemplateElementTypeEnum" use="required"/>
  387. <xs:attribute name="x" type="xs:int" default="0"/>
  388. <xs:attribute name="y" type="xs:int" default="0"/>
  389. <xs:attribute name="width" type="xs:string" default="auto"/>
  390. <xs:attribute name="height" type="xs:string" default="auto"/>
  391. <xs:attribute name="data-binding" type="xs:string"/>
  392. <xs:attribute name="format-string" type="xs:string"/>
  393. <xs:attribute name="font-family" type="xs:string" default="system"/>
  394. <xs:attribute name="font-size" type="xs:int" default="12"/>
  395. <xs:attribute name="font-style" type="tns:FontStyleEnum" default="normal"/>
  396. <xs:attribute name="foreground-color" type="xs:string" default="black"/>
  397. <xs:attribute name="text-align" type="tns:TextAlignEnum" default="left"/>
  398. <xs:attribute name="vertical-align" type="tns:VerticalAlignEnum" default="top"/>
  399. <xs:attribute name="image-size-mode" type="tns:ImageSizeModeEnum" default="normal"/>
  400. <xs:attribute name="anchor" type="tns:AnchorEnum" default="none"/>
  401. </xs:complexType>
  402. <!-- Custom Property Type -->
  403. <xs:complexType name="CustomPropertyType">
  404. <xs:attribute name="name" type="xs:string" use="required"/>
  405. <xs:attribute name="value" type="xs:string" use="required"/>
  406. <xs:attribute name="data-type" type="tns:DataTypeEnum" default="text"/>
  407. </xs:complexType>
  408. <!-- Data Field Type -->
  409. <xs:complexType name="DataFieldType">
  410. <xs:attribute name="name" type="xs:string" use="required"/>
  411. <xs:attribute name="value" type="xs:string" use="required"/>
  412. <xs:attribute name="display-name" type="xs:string"/>
  413. <xs:attribute name="format" type="xs:string"/>
  414. </xs:complexType>
  415. <!-- ColumnItem Type -->
  416. <xs:complexType name="ColumnItemType">
  417. <xs:attribute name="name" type="xs:string" use="required"/>
  418. <xs:attribute name="text" type="xs:string" use="required"/>
  419. <xs:attribute name="width" type="xs:int" default="100"/>
  420. <xs:attribute name="sortable" type="xs:boolean" default="true"/>
  421. <xs:attribute name="visible" type="xs:boolean" default="true"/>
  422. <xs:attribute name="alignment" type="tns:AlignmentEnum" default="left"/>
  423. <xs:attribute name="data-type" type="tns:DataTypeEnum" default="text"/>
  424. <xs:attribute name="format-string" type="xs:string"/>
  425. <xs:attribute name="image-index" type="xs:int" default="-1"/>
  426. <xs:attribute name="tag" type="xs:string"/>
  427. </xs:complexType>
  428. <!-- TreeNode Type -->
  429. <xs:complexType name="TreeNodeType">
  430. <xs:sequence>
  431. <xs:element name="nodes" type="tns:TreeNodesType" minOccurs="0"/>
  432. </xs:sequence>
  433. <xs:attribute name="text" type="xs:string" use="required"/>
  434. <xs:attribute name="value" type="xs:string"/>
  435. <xs:attribute name="expanded" type="xs:boolean" default="false"/>
  436. <xs:attribute name="selected" type="xs:boolean" default="false"/>
  437. <xs:attribute name="checked" type="xs:boolean" default="false"/>
  438. <xs:attribute name="image-index" type="xs:int" default="-1"/>
  439. <xs:attribute name="image-key" type="xs:string"/>
  440. <xs:attribute name="selected-image-index" type="xs:int" default="-1"/>
  441. <xs:attribute name="selected-image-key" type="xs:string"/>
  442. <xs:attribute name="state-image-index" type="xs:int" default="-1"/>
  443. <xs:attribute name="state-image-key" type="xs:string"/>
  444. <xs:attribute name="tool-tip-text" type="xs:string"/>
  445. <xs:attribute name="context-menu" type="xs:string"/>
  446. <xs:attribute name="tag" type="xs:string"/>
  447. </xs:complexType>
  448. <!-- MenuItem Type -->
  449. <xs:complexType name="MenuItemType">
  450. <xs:sequence>
  451. <xs:element name="items" type="tns:MenuItemsType" minOccurs="0"/>
  452. </xs:sequence>
  453. <xs:attribute name="text" type="xs:string" use="required"/>
  454. <xs:attribute name="value" type="xs:string"/>
  455. <xs:attribute name="enabled" type="xs:boolean" default="true"/>
  456. <xs:attribute name="visible" type="xs:boolean" default="true"/>
  457. <xs:attribute name="checked" type="xs:boolean" default="false"/>
  458. <xs:attribute name="checkable" type="xs:boolean" default="false"/>
  459. <xs:attribute name="radio-check" type="xs:boolean" default="false"/>
  460. <xs:attribute name="image" type="xs:string"/>
  461. <xs:attribute name="shortcut-keys" type="xs:string"/>
  462. <xs:attribute name="show-shortcut" type="xs:boolean" default="true"/>
  463. <xs:attribute name="merge-type" type="tns:MergeTypeEnum" default="add"/>
  464. <xs:attribute name="merge-order" type="xs:int" default="0"/>
  465. <xs:attribute name="separator" type="xs:boolean" default="false"/>
  466. <xs:attribute name="tag" type="xs:string"/>
  467. </xs:complexType>
  468. <!-- COLLECTION TYPES -->
  469. <!-- ComboBox Items -->
  470. <xs:complexType name="ComboBoxItemsType">
  471. <xs:sequence>
  472. <xs:element name="item" type="tns:ListBoxItemType" maxOccurs="unbounded"/>
  473. </xs:sequence>
  474. </xs:complexType>
  475. <!-- Menu Items -->
  476. <xs:complexType name="MenuItemsType">
  477. <xs:sequence>
  478. <xs:element name="item" type="tns:MenuItemType" maxOccurs="unbounded"/>
  479. </xs:sequence>
  480. </xs:complexType>
  481. <!-- ListView Items -->
  482. <xs:complexType name="ListViewItemsType">
  483. <xs:sequence>
  484. <xs:element name="item" type="tns:ListViewItemType" maxOccurs="unbounded"/>
  485. </xs:sequence>
  486. </xs:complexType>
  487. <!-- Gallery Items -->
  488. <xs:complexType name="GalleryItemsType">
  489. <xs:sequence>
  490. <xs:element name="GalleryItem" type="tns:GalleryItemType" maxOccurs="unbounded"/>
  491. </xs:sequence>
  492. </xs:complexType>
  493. <!-- Columns -->
  494. <xs:complexType name="ColumnsType">
  495. <xs:sequence>
  496. <xs:element name="column" type="tns:ColumnItemType" maxOccurs="unbounded"/>
  497. </xs:sequence>
  498. </xs:complexType>
  499. <!-- Tree Nodes -->
  500. <xs:complexType name="TreeNodesType">
  501. <xs:sequence>
  502. <xs:element name="node" type="tns:TreeNodeType" maxOccurs="unbounded"/>
  503. </xs:sequence>
  504. </xs:complexType>
  505. <!-- ENUMERATION TYPES -->
  506. <!-- Basic Enumerations -->
  507. <xs:simpleType name="DockEnum">
  508. <xs:restriction base="xs:string">
  509. <xs:enumeration value="none"/>
  510. <xs:enumeration value="left"/>
  511. <xs:enumeration value="right"/>
  512. <xs:enumeration value="top"/>
  513. <xs:enumeration value="bottom"/>
  514. <xs:enumeration value="fill"/>
  515. </xs:restriction>
  516. </xs:simpleType>
  517. <xs:simpleType name="AnchorEnum">
  518. <xs:restriction base="xs:string">
  519. <xs:enumeration value="none"/>
  520. <xs:enumeration value="left"/>
  521. <xs:enumeration value="right"/>
  522. <xs:enumeration value="top"/>
  523. <xs:enumeration value="bottom"/>
  524. <xs:enumeration value="all"/>
  525. </xs:restriction>
  526. </xs:simpleType>
  527. <xs:simpleType name="FontStyleEnum">
  528. <xs:restriction base="xs:string">
  529. <xs:enumeration value="normal"/>
  530. <xs:enumeration value="italic"/>
  531. <xs:enumeration value="bold"/>
  532. <xs:enumeration value="bold-italic"/>
  533. </xs:restriction>
  534. </xs:simpleType>
  535. <xs:simpleType name="OrientationEnum">
  536. <xs:restriction base="xs:string">
  537. <xs:enumeration value="horizontal"/>
  538. <xs:enumeration value="vertical"/>
  539. </xs:restriction>
  540. </xs:simpleType>
  541. <xs:simpleType name="TextAlignEnum">
  542. <xs:restriction base="xs:string">
  543. <xs:enumeration value="left"/>
  544. <xs:enumeration value="center"/>
  545. <xs:enumeration value="right"/>
  546. <xs:enumeration value="justify"/>
  547. </xs:restriction>
  548. </xs:simpleType>
  549. <xs:simpleType name="VerticalAlignEnum">
  550. <xs:restriction base="xs:string">
  551. <xs:enumeration value="top"/>
  552. <xs:enumeration value="middle"/>
  553. <xs:enumeration value="bottom"/>
  554. </xs:restriction>
  555. </xs:simpleType>
  556. <xs:simpleType name="AlignmentEnum">
  557. <xs:restriction base="xs:string">
  558. <xs:enumeration value="left"/>
  559. <xs:enumeration value="center"/>
  560. <xs:enumeration value="right"/>
  561. </xs:restriction>
  562. </xs:simpleType>
  563. <!-- Border Style Enumeration -->
  564. <xs:simpleType name="BorderStyleEnum">
  565. <xs:restriction base="xs:string">
  566. <xs:enumeration value="none"/>
  567. <xs:enumeration value="single"/>
  568. <xs:enumeration value="raised"/>
  569. <xs:enumeration value="sunken"/>
  570. <xs:enumeration value="double"/>
  571. <xs:enumeration value="solid"/>
  572. <xs:enumeration value="dashed"/>
  573. <xs:enumeration value="dotted"/>
  574. </xs:restriction>
  575. </xs:simpleType>
  576. <!-- Separator Specific Enumerations -->
  577. <xs:simpleType name="LineStyleEnum">
  578. <xs:restriction base="xs:string">
  579. <xs:enumeration value="solid"/>
  580. <xs:enumeration value="dashed"/>
  581. <xs:enumeration value="dotted"/>
  582. <xs:enumeration value="double"/>
  583. <xs:enumeration value="groove"/>
  584. <xs:enumeration value="ridge"/>
  585. <xs:enumeration value="inset"/>
  586. <xs:enumeration value="outset"/>
  587. </xs:restriction>
  588. </xs:simpleType>
  589. <!-- Image Specific Enumerations -->
  590. <xs:simpleType name="ImageSourceTypeEnum">
  591. <xs:restriction base="xs:string">
  592. <xs:enumeration value="file"/>
  593. <xs:enumeration value="url"/>
  594. <xs:enumeration value="resource"/>
  595. <xs:enumeration value="base64"/>
  596. <xs:enumeration value="stream"/>
  597. </xs:restriction>
  598. </xs:simpleType>
  599. <xs:simpleType name="ImageSizeModeEnum">
  600. <xs:restriction base="xs:string">
  601. <xs:enumeration value="normal"/>
  602. <xs:enumeration value="stretch-image"/>
  603. <xs:enumeration value="auto-size"/>
  604. <xs:enumeration value="center-image"/>
  605. <xs:enumeration value="zoom"/>
  606. <xs:enumeration value="stretch"/>
  607. <xs:enumeration value="center"/>
  608. </xs:restriction>
  609. </xs:simpleType>
  610. <xs:simpleType name="AspectRatioEnum">
  611. <xs:restriction base="xs:string">
  612. <xs:enumeration value="ignore"/>
  613. <xs:enumeration value="keep"/>
  614. <xs:enumeration value="keep-by-expanding"/>
  615. <xs:enumeration value="fit"/>
  616. </xs:restriction>
  617. </xs:simpleType>
  618. <xs:simpleType name="InterpolationModeEnum">
  619. <xs:restriction base="xs:string">
  620. <xs:enumeration value="default"/>
  621. <xs:enumeration value="low"/>
  622. <xs:enumeration value="high"/>
  623. <xs:enumeration value="bilinear"/>
  624. <xs:enumeration value="bicubic"/>
  625. <xs:enumeration value="nearest-neighbor"/>
  626. </xs:restriction>
  627. </xs:simpleType>
  628. <!-- TextBox Specific Enumerations -->
  629. <xs:simpleType name="AutoCompleteModeEnum">
  630. <xs:restriction base="xs:string">
  631. <xs:enumeration value="none"/>
  632. <xs:enumeration value="suggest"/>
  633. <xs:enumeration value="append"/>
  634. <xs:enumeration value="suggest-append"/>
  635. </xs:restriction>
  636. </xs:simpleType>
  637. <!-- ComboBox Specific Enumerations -->
  638. <xs:simpleType name="DropdownStyleEnum">
  639. <xs:restriction base="xs:string">
  640. <xs:enumeration value="dropdown"/>
  641. <xs:enumeration value="simple"/>
  642. <xs:enumeration value="dropdown-list"/>
  643. </xs:restriction>
  644. </xs:simpleType>
  645. <!-- Button Specific Enumerations -->
  646. <xs:simpleType name="ButtonTypeEnum">
  647. <xs:restriction base="xs:string">
  648. <xs:enumeration value="text"/>
  649. <xs:enumeration value="image"/>
  650. <xs:enumeration value="text-image"/>
  651. </xs:restriction>
  652. </xs:simpleType>
  653. <xs:simpleType name="ImagePositionEnum">
  654. <xs:restriction base="xs:string">
  655. <xs:enumeration value="left"/>
  656. <xs:enumeration value="right"/>
  657. <xs:enumeration value="top"/>
  658. <xs:enumeration value="bottom"/>
  659. </xs:restriction>
  660. </xs:simpleType>
  661. <xs:simpleType name="ButtonStyleEnum">
  662. <xs:restriction base="xs:string">
  663. <xs:enumeration value="normal"/>
  664. <xs:enumeration value="primary"/>
  665. <xs:enumeration value="secondary"/>
  666. <xs:enumeration value="danger"/>
  667. <xs:enumeration value="success"/>
  668. <xs:enumeration value="warning"/>
  669. <xs:enumeration value="info"/>
  670. </xs:restriction>
  671. </xs:simpleType>
  672. <xs:simpleType name="ButtonSizeEnum">
  673. <xs:restriction base="xs:string">
  674. <xs:enumeration value="small"/>
  675. <xs:enumeration value="medium"/>
  676. <xs:enumeration value="large"/>
  677. </xs:restriction>
  678. </xs:simpleType>
  679. <!-- Panel Specific Enumerations -->
  680. <xs:simpleType name="LayoutTypeEnum">
  681. <xs:restriction base="xs:string">
  682. <xs:enumeration value="absolute"/>
  683. <xs:enumeration value="flow"/>
  684. <xs:enumeration value="stack"/>
  685. <xs:enumeration value="grid"/>
  686. </xs:restriction>
  687. </xs:simpleType>
  688. <xs:simpleType name="FlowDirectionEnum">
  689. <xs:restriction base="xs:string">
  690. <xs:enumeration value="left-to-right"/>
  691. <xs:enumeration value="right-to-left"/>
  692. <xs:enumeration value="top-to-bottom"/>
  693. <xs:enumeration value="bottom-to-top"/>
  694. </xs:restriction>
  695. </xs:simpleType>
  696. <!-- PopupPanel Specific Enumerations -->
  697. <xs:simpleType name="PopupModeEnum">
  698. <xs:restriction base="xs:string">
  699. <xs:enumeration value="modal"/>
  700. <xs:enumeration value="modeless"/>
  701. <xs:enumeration value="tooltip"/>
  702. </xs:restriction>
  703. </xs:simpleType>
  704. <!-- ListView Specific Enumerations -->
  705. <xs:simpleType name="ListViewModeEnum">
  706. <xs:restriction base="xs:string">
  707. <xs:enumeration value="details"/>
  708. <xs:enumeration value="list"/>
  709. <xs:enumeration value="large-icons"/>
  710. <xs:enumeration value="small-icons"/>
  711. <xs:enumeration value="tiles"/>
  712. </xs:restriction>
  713. </xs:simpleType>
  714. <!-- Gallery Specific Enumerations -->
  715. <xs:simpleType name="GalleryViewModeEnum">
  716. <xs:restriction base="xs:string">
  717. <xs:enumeration value="details"/>
  718. <xs:enumeration value="list"/>
  719. <xs:enumeration value="large-icons"/>
  720. <xs:enumeration value="small-icons"/>
  721. <xs:enumeration value="tiles"/>
  722. <xs:enumeration value="gallery"/>
  723. </xs:restriction>
  724. </xs:simpleType>
  725. <xs:simpleType name="TemplateElementTypeEnum">
  726. <xs:restriction base="xs:string">
  727. <xs:enumeration value="image"/>
  728. <xs:enumeration value="text"/>
  729. <xs:enumeration value="label"/>
  730. <xs:enumeration value="custom"/>
  731. </xs:restriction>
  732. </xs:simpleType>
  733. <!-- Common List Control Enumerations -->
  734. <xs:simpleType name="HeaderStyleEnum">
  735. <xs:restriction base="xs:string">
  736. <xs:enumeration value="none"/>
  737. <xs:enumeration value="clickable"/>
  738. <xs:enumeration value="non-clickable"/>
  739. </xs:restriction>
  740. </xs:simpleType>
  741. <xs:simpleType name="SortingEnum">
  742. <xs:restriction base="xs:string">
  743. <xs:enumeration value="none"/>
  744. <xs:enumeration value="ascending"/>
  745. <xs:enumeration value="descending"/>
  746. </xs:restriction>
  747. </xs:simpleType>
  748. <!-- Menu Specific Enumerations -->
  749. <xs:simpleType name="MergeTypeEnum">
  750. <xs:restriction base="xs:string">
  751. <xs:enumeration value="add"/>
  752. <xs:enumeration value="merge-items"/>
  753. <xs:enumeration value="remove"/>
  754. <xs:enumeration value="replace"/>
  755. </xs:restriction>
  756. </xs:simpleType>
  757. <!-- Data Type Enumeration -->
  758. <xs:simpleType name="DataTypeEnum">
  759. <xs:restriction base="xs:string">
  760. <xs:enumeration value="text"/>
  761. <xs:enumeration value="number"/>
  762. <xs:enumeration value="date"/>
  763. <xs:enumeration value="boolean"/>
  764. <xs:enumeration value="image"/>
  765. <xs:enumeration value="object"/>
  766. </xs:restriction>
  767. </xs:simpleType>
  768. </xs:schema>