ui-layout-winforms-controls.xsd 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  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-winforms-controls"
  4. xmlns:tns="http://quadarax.com/ui-layout-winforms-controls"
  5. xmlns:basic="http://quadarax.com/ui-layout-basic-controls"
  6. elementFormDefault="qualified"
  7. version="1.5">
  8. <!-- Import basic controls -->
  9. <xs:import namespace="http://quadarax.com/ui-layout-basic-controls" schemaLocation="ui-layout-basic-controls.xsd"/>
  10. <!-- WinForms Control Instance Type -->
  11. <xs:complexType name="WinFormsControlInstanceType" mixed="true">
  12. <xs:group ref="tns:WinFormsControlContentGroup" minOccurs="0" maxOccurs="unbounded"/>
  13. <!-- ENHANCEMENT: v1.3 WinForms-specific attributes -->
  14. <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
  15. <xs:attribute name="net-framework-version" type="xs:string" default="4.8"/>
  16. <xs:attribute name="net-version" type="xs:string" default="6.0"/>
  17. <xs:attribute name="visual-styles" type="xs:boolean" default="true"/>
  18. <xs:attribute name="dpi-awareness" type="tns:DpiAwarenessEnum" default="system"/>
  19. <xs:attribute name="theme-support" type="xs:boolean" default="false"/>
  20. <xs:anyAttribute processContents="lax"/>
  21. </xs:complexType>
  22. <!-- ENHANCEMENT: DPI Awareness Enumeration -->
  23. <xs:simpleType name="DpiAwarenessEnum">
  24. <xs:restriction base="xs:string">
  25. <xs:enumeration value="unaware"/>
  26. <xs:enumeration value="system"/>
  27. <xs:enumeration value="per-monitor"/>
  28. <xs:enumeration value="per-monitor-v2"/>
  29. </xs:restriction>
  30. </xs:simpleType>
  31. <!-- FIXED: WinForms Control Content Group -->
  32. <xs:group name="WinFormsControlContentGroup">
  33. <xs:choice>
  34. <!-- Allow any elements from current namespace or basic controls namespace -->
  35. <xs:any namespace="##targetNamespace http://quadarax.com/ui-layout-basic-controls" processContents="lax" minOccurs="0" maxOccurs="unbounded">
  36. <xs:annotation>
  37. <xs:documentation>
  38. Allows any WinForms UI controls and basic controls with full flexibility.
  39. Eliminates need for explicit control definitions while maintaining WinForms control structure.
  40. </xs:documentation>
  41. </xs:annotation>
  42. </xs:any>
  43. </xs:choice>
  44. </xs:group>
  45. <!-- ENHANCEMENT: WinForms Data Binding Type -->
  46. <xs:complexType name="WinFormsDataBindingType">
  47. <xs:sequence>
  48. <xs:element name="binding" type="tns:WinFormsBindingType" maxOccurs="unbounded"/>
  49. <xs:element name="binding-source" type="tns:BindingSourceType" minOccurs="0" maxOccurs="unbounded"/>
  50. </xs:sequence>
  51. </xs:complexType>
  52. <xs:complexType name="WinFormsBindingType">
  53. <xs:attribute name="property-name" type="xs:string" use="required"/>
  54. <xs:attribute name="data-source" type="xs:string" use="required"/>
  55. <xs:attribute name="data-member" type="xs:string"/>
  56. <xs:attribute name="format-string" type="xs:string"/>
  57. <xs:attribute name="null-value" type="xs:string"/>
  58. <xs:attribute name="data-source-update-mode" type="tns:DataSourceUpdateModeEnum" default="OnValidation"/>
  59. <xs:attribute name="control-update-mode" type="tns:ControlUpdateModeEnum" default="OnPropertyChanged"/>
  60. </xs:complexType>
  61. <xs:complexType name="BindingSourceType">
  62. <xs:attribute name="name" type="xs:string" use="required"/>
  63. <xs:attribute name="data-source" type="xs:string"/>
  64. <xs:attribute name="data-member" type="xs:string"/>
  65. <xs:attribute name="allow-new" type="xs:boolean" default="true"/>
  66. <xs:attribute name="sort" type="xs:string"/>
  67. <xs:attribute name="filter" type="xs:string"/>
  68. </xs:complexType>
  69. <xs:simpleType name="DataSourceUpdateModeEnum">
  70. <xs:restriction base="xs:string">
  71. <xs:enumeration value="OnValidation"/>
  72. <xs:enumeration value="OnPropertyChanged"/>
  73. <xs:enumeration value="Never"/>
  74. </xs:restriction>
  75. </xs:simpleType>
  76. <xs:simpleType name="ControlUpdateModeEnum">
  77. <xs:restriction base="xs:string">
  78. <xs:enumeration value="OnPropertyChanged"/>
  79. <xs:enumeration value="Never"/>
  80. </xs:restriction>
  81. </xs:simpleType>
  82. <!-- ENHANCEMENT: WinForms Validation Type -->
  83. <xs:complexType name="WinFormsValidationType">
  84. <xs:sequence>
  85. <xs:element name="error-provider" type="tns:ErrorProviderType" maxOccurs="unbounded"/>
  86. <xs:element name="validation-rule" type="tns:ValidationRuleType" minOccurs="0" maxOccurs="unbounded"/>
  87. </xs:sequence>
  88. </xs:complexType>
  89. <xs:complexType name="ErrorProviderType">
  90. <xs:attribute name="name" type="xs:string" use="required"/>
  91. <xs:attribute name="control" type="xs:string" use="required"/>
  92. <xs:attribute name="error-message" type="xs:string" use="required"/>
  93. <xs:attribute name="icon-alignment" type="tns:ErrorIconAlignmentEnum" default="MiddleRight"/>
  94. <xs:attribute name="icon-padding" type="xs:int" default="0"/>
  95. <xs:attribute name="blink-style" type="tns:ErrorBlinkStyleEnum" default="BlinkIfDifferentError"/>
  96. <xs:attribute name="blink-rate" type="xs:int" default="250"/>
  97. </xs:complexType>
  98. <xs:complexType name="ValidationRuleType">
  99. <xs:attribute name="control" type="xs:string" use="required"/>
  100. <xs:attribute name="validation-type" type="tns:ValidationTypeEnum" use="required"/>
  101. <xs:attribute name="pattern" type="xs:string"/>
  102. <xs:attribute name="min-value" type="xs:string"/>
  103. <xs:attribute name="max-value" type="xs:string"/>
  104. <xs:attribute name="required" type="xs:boolean" default="false"/>
  105. <xs:attribute name="error-message" type="xs:string"/>
  106. </xs:complexType>
  107. <xs:simpleType name="ErrorIconAlignmentEnum">
  108. <xs:restriction base="xs:string">
  109. <xs:enumeration value="TopLeft"/>
  110. <xs:enumeration value="TopRight"/>
  111. <xs:enumeration value="MiddleLeft"/>
  112. <xs:enumeration value="MiddleRight"/>
  113. <xs:enumeration value="BottomLeft"/>
  114. <xs:enumeration value="BottomRight"/>
  115. </xs:restriction>
  116. </xs:simpleType>
  117. <xs:simpleType name="ErrorBlinkStyleEnum">
  118. <xs:restriction base="xs:string">
  119. <xs:enumeration value="BlinkIfDifferentError"/>
  120. <xs:enumeration value="AlwaysBlink"/>
  121. <xs:enumeration value="NeverBlink"/>
  122. </xs:restriction>
  123. </xs:simpleType>
  124. <xs:simpleType name="ValidationTypeEnum">
  125. <xs:restriction base="xs:string">
  126. <xs:enumeration value="Required"/>
  127. <xs:enumeration value="RegularExpression"/>
  128. <xs:enumeration value="Range"/>
  129. <xs:enumeration value="StringLength"/>
  130. <xs:enumeration value="Email"/>
  131. <xs:enumeration value="Phone"/>
  132. <xs:enumeration value="Url"/>
  133. <xs:enumeration value="CreditCard"/>
  134. <xs:enumeration value="Custom"/>
  135. </xs:restriction>
  136. </xs:simpleType>
  137. <!-- ENHANCEMENT: WinForms Localization Type -->
  138. <xs:complexType name="WinFormsLocalizationType">
  139. <xs:sequence>
  140. <xs:element name="localizable-property" type="tns:LocalizablePropertyType" maxOccurs="unbounded"/>
  141. </xs:sequence>
  142. <xs:attribute name="culture" type="xs:string" default="en-US"/>
  143. <xs:attribute name="right-to-left" type="tns:RightToLeftEnum" default="No"/>
  144. </xs:complexType>
  145. <xs:complexType name="LocalizablePropertyType">
  146. <xs:attribute name="control" type="xs:string" use="required"/>
  147. <xs:attribute name="property" type="xs:string" use="required"/>
  148. <xs:attribute name="resource-key" type="xs:string" use="required"/>
  149. <xs:attribute name="resource-file" type="xs:string"/>
  150. </xs:complexType>
  151. <xs:simpleType name="RightToLeftEnum">
  152. <xs:restriction base="xs:string">
  153. <xs:enumeration value="No"/>
  154. <xs:enumeration value="Yes"/>
  155. <xs:enumeration value="Inherit"/>
  156. </xs:restriction>
  157. </xs:simpleType>
  158. <!-- ENHANCEMENT: WinForms Accessibility Type -->
  159. <xs:complexType name="WinFormsAccessibilityType">
  160. <xs:sequence>
  161. <xs:element name="accessibility-info" type="tns:AccessibilityInfoType" maxOccurs="unbounded"/>
  162. </xs:sequence>
  163. </xs:complexType>
  164. <xs:complexType name="AccessibilityInfoType">
  165. <xs:attribute name="control" type="xs:string" use="required"/>
  166. <xs:attribute name="accessible-name" type="xs:string"/>
  167. <xs:attribute name="accessible-description" type="xs:string"/>
  168. <xs:attribute name="accessible-role" type="tns:AccessibleRoleEnum" default="Default"/>
  169. <xs:attribute name="accessible-default-action-description" type="xs:string"/>
  170. <xs:attribute name="tab-index" type="xs:int"/>
  171. <xs:attribute name="tab-stop" type="xs:boolean" default="true"/>
  172. </xs:complexType>
  173. <xs:simpleType name="AccessibleRoleEnum">
  174. <xs:restriction base="xs:string">
  175. <xs:enumeration value="Default"/>
  176. <xs:enumeration value="None"/>
  177. <xs:enumeration value="Button"/>
  178. <xs:enumeration value="CheckBox"/>
  179. <xs:enumeration value="ComboBox"/>
  180. <xs:enumeration value="Link"/>
  181. <xs:enumeration value="List"/>
  182. <xs:enumeration value="ListItem"/>
  183. <xs:enumeration value="MenuBar"/>
  184. <xs:enumeration value="MenuItem"/>
  185. <xs:enumeration value="MenuPopup"/>
  186. <xs:enumeration value="ProgressBar"/>
  187. <xs:enumeration value="RadioButton"/>
  188. <xs:enumeration value="ScrollBar"/>
  189. <xs:enumeration value="Slider"/>
  190. <xs:enumeration value="StaticText"/>
  191. <xs:enumeration value="Text"/>
  192. <xs:enumeration value="ToolBar"/>
  193. <xs:enumeration value="ToolTip"/>
  194. <xs:enumeration value="Tree"/>
  195. <xs:enumeration value="TreeItem"/>
  196. <xs:enumeration value="Window"/>
  197. </xs:restriction>
  198. </xs:simpleType>
  199. <!-- ENHANCEMENT: Printing Type -->
  200. <xs:complexType name="PrintingType">
  201. <xs:sequence>
  202. <xs:element name="print-document" type="tns:PrintDocumentType" minOccurs="0"/>
  203. <xs:element name="print-preview" type="tns:PrintPreviewType" minOccurs="0"/>
  204. <xs:element name="page-setup" type="tns:PageSetupType" minOccurs="0"/>
  205. </xs:sequence>
  206. </xs:complexType>
  207. <xs:complexType name="PrintDocumentType">
  208. <xs:attribute name="document-name" type="xs:string" default="Document"/>
  209. <xs:attribute name="default-page-settings" type="xs:string"/>
  210. <xs:attribute name="printer-settings" type="xs:string"/>
  211. <xs:attribute name="origin-at-margins" type="xs:boolean" default="false"/>
  212. </xs:complexType>
  213. <xs:complexType name="PrintPreviewType">
  214. <xs:attribute name="auto-zoom" type="xs:boolean" default="true"/>
  215. <xs:attribute name="zoom" type="xs:decimal" default="0.3"/>
  216. <xs:attribute name="columns" default="1">
  217. <xs:simpleType>
  218. <xs:restriction base="xs:int">
  219. <xs:minInclusive value="1"/>
  220. <xs:maxInclusive value="10"/>
  221. </xs:restriction>
  222. </xs:simpleType>
  223. </xs:attribute>
  224. <xs:attribute name="rows" default="1">
  225. <xs:simpleType>
  226. <xs:restriction base="xs:int">
  227. <xs:minInclusive value="1"/>
  228. <xs:maxInclusive value="10"/>
  229. </xs:restriction>
  230. </xs:simpleType>
  231. </xs:attribute>
  232. <xs:attribute name="start-page" type="xs:int" default="0"/>
  233. </xs:complexType>
  234. <xs:complexType name="PageSetupType">
  235. <xs:attribute name="margins" type="xs:string" default="100,100,100,100"/>
  236. <xs:attribute name="paper-size" type="tns:PaperSizeEnum" default="Letter"/>
  237. <xs:attribute name="landscape" type="xs:boolean" default="false"/>
  238. <xs:attribute name="color" type="xs:boolean" default="false"/>
  239. </xs:complexType>
  240. <xs:simpleType name="PaperSizeEnum">
  241. <xs:restriction base="xs:string">
  242. <xs:enumeration value="Letter"/>
  243. <xs:enumeration value="Legal"/>
  244. <xs:enumeration value="A4"/>
  245. <xs:enumeration value="A3"/>
  246. <xs:enumeration value="A5"/>
  247. <xs:enumeration value="Tabloid"/>
  248. <xs:enumeration value="Custom"/>
  249. </xs:restriction>
  250. </xs:simpleType>
  251. <!-- ENHANCEMENT: Help System Type -->
  252. <xs:complexType name="HelpSystemType">
  253. <xs:sequence>
  254. <xs:element name="help-provider" type="tns:HelpProviderType" minOccurs="0"/>
  255. <xs:element name="context-help" type="tns:ContextHelpType" minOccurs="0" maxOccurs="unbounded"/>
  256. </xs:sequence>
  257. </xs:complexType>
  258. <xs:complexType name="HelpProviderType">
  259. <xs:attribute name="help-namespace" type="xs:string"/>
  260. <xs:attribute name="help-navigator" type="tns:HelpNavigatorEnum" default="Topic"/>
  261. </xs:complexType>
  262. <xs:complexType name="ContextHelpType">
  263. <xs:attribute name="control" type="xs:string" use="required"/>
  264. <xs:attribute name="help-string" type="xs:string"/>
  265. <xs:attribute name="help-keyword" type="xs:string"/>
  266. <xs:attribute name="help-navigator" type="tns:HelpNavigatorEnum" default="Topic"/>
  267. <xs:attribute name="show-help" type="xs:boolean" default="true"/>
  268. </xs:complexType>
  269. <xs:simpleType name="HelpNavigatorEnum">
  270. <xs:restriction base="xs:string">
  271. <xs:enumeration value="Topic"/>
  272. <xs:enumeration value="TableOfContents"/>
  273. <xs:enumeration value="Index"/>
  274. <xs:enumeration value="Find"/>
  275. <xs:enumeration value="AssociateIndex"/>
  276. <xs:enumeration value="KeywordIndex"/>
  277. <xs:enumeration value="TopicId"/>
  278. </xs:restriction>
  279. </xs:simpleType>
  280. <!-- WinForms-specific supporting types -->
  281. <xs:complexType name="TabPagesType">
  282. <xs:sequence>
  283. <xs:element name="tabpage" maxOccurs="unbounded">
  284. <xs:complexType>
  285. <xs:attribute name="name" type="xs:string" use="required"/>
  286. <xs:attribute name="text" type="xs:string" use="required"/>
  287. <xs:attribute name="tooltip" type="xs:string"/>
  288. <xs:attribute name="imageindex" type="xs:int" default="-1"/>
  289. <!-- ENHANCEMENT: v1.3 additions -->
  290. <xs:attribute name="image-key" type="xs:string"/>
  291. <xs:attribute name="use-visual-style-back-color" type="xs:boolean" default="false"/>
  292. <xs:attribute name="back-color" type="xs:string"/>
  293. <xs:attribute name="fore-color" type="xs:string"/>
  294. <xs:attribute name="font" type="xs:string"/>
  295. <xs:attribute name="padding" type="xs:string" default="3,3,3,3"/>
  296. <xs:attribute name="auto-scroll" type="xs:boolean" default="false"/>
  297. </xs:complexType>
  298. </xs:element>
  299. </xs:sequence>
  300. </xs:complexType>
  301. <xs:complexType name="PanelsType">
  302. <xs:sequence>
  303. <xs:element name="panel" maxOccurs="2">
  304. <xs:complexType>
  305. <xs:attribute name="name" type="xs:string" use="required"/>
  306. <!-- ENHANCEMENT: v1.3 additions -->
  307. <xs:attribute name="fixed-panel" type="tns:FixedPanelEnum" default="None"/>
  308. <xs:attribute name="splitter-distance" type="xs:int"/>
  309. <xs:attribute name="min-size" type="xs:int" default="25"/>
  310. <xs:attribute name="collapsed" type="xs:boolean" default="false"/>
  311. </xs:complexType>
  312. </xs:element>
  313. </xs:sequence>
  314. </xs:complexType>
  315. <xs:simpleType name="FixedPanelEnum">
  316. <xs:restriction base="xs:string">
  317. <xs:enumeration value="None"/>
  318. <xs:enumeration value="Panel1"/>
  319. <xs:enumeration value="Panel2"/>
  320. </xs:restriction>
  321. </xs:simpleType>
  322. <xs:complexType name="TableLayoutType">
  323. <xs:sequence>
  324. <xs:element name="columns" type="tns:TableColumnsType"/>
  325. <xs:element name="rows" type="tns:TableRowsType"/>
  326. <xs:element name="cells" type="tns:CellsType"/>
  327. </xs:sequence>
  328. <!-- ENHANCEMENT: v1.3 additions -->
  329. <xs:attribute name="grow-style" type="tns:TableLayoutPanelGrowStyleEnum" default="AddRows"/>
  330. <xs:attribute name="cell-border-style" type="tns:TableLayoutPanelCellBorderStyleEnum" default="None"/>
  331. </xs:complexType>
  332. <xs:simpleType name="TableLayoutPanelGrowStyleEnum">
  333. <xs:restriction base="xs:string">
  334. <xs:enumeration value="FixedSize"/>
  335. <xs:enumeration value="AddRows"/>
  336. <xs:enumeration value="AddColumns"/>
  337. </xs:restriction>
  338. </xs:simpleType>
  339. <xs:simpleType name="TableLayoutPanelCellBorderStyleEnum">
  340. <xs:restriction base="xs:string">
  341. <xs:enumeration value="None"/>
  342. <xs:enumeration value="Single"/>
  343. <xs:enumeration value="Inset"/>
  344. <xs:enumeration value="InsetDouble"/>
  345. <xs:enumeration value="Outset"/>
  346. <xs:enumeration value="OutsetDouble"/>
  347. <xs:enumeration value="OutsetPartial"/>
  348. </xs:restriction>
  349. </xs:simpleType>
  350. <xs:complexType name="TableColumnsType">
  351. <xs:sequence>
  352. <xs:element name="column" maxOccurs="unbounded">
  353. <xs:complexType>
  354. <xs:attribute name="sizetype" type="tns:SizeTypeEnum" use="required"/>
  355. <xs:attribute name="size" type="xs:string" use="required"/>
  356. <!-- ENHANCEMENT: v1.3 additions -->
  357. <xs:attribute name="min-size" type="xs:int" default="5"/>
  358. <xs:attribute name="max-size" type="xs:int" default="0"/>
  359. </xs:complexType>
  360. </xs:element>
  361. </xs:sequence>
  362. </xs:complexType>
  363. <xs:complexType name="TableRowsType">
  364. <xs:sequence>
  365. <xs:element name="row" maxOccurs="unbounded">
  366. <xs:complexType>
  367. <xs:attribute name="sizetype" type="tns:SizeTypeEnum" use="required"/>
  368. <xs:attribute name="size" type="xs:string" use="required"/>
  369. <!-- ENHANCEMENT: v1.3 additions -->
  370. <xs:attribute name="min-size" type="xs:int" default="5"/>
  371. <xs:attribute name="max-size" type="xs:int" default="0"/>
  372. </xs:complexType>
  373. </xs:element>
  374. </xs:sequence>
  375. </xs:complexType>
  376. <xs:simpleType name="SizeTypeEnum">
  377. <xs:restriction base="xs:string">
  378. <xs:enumeration value="AutoSize"/>
  379. <xs:enumeration value="Absolute"/>
  380. <xs:enumeration value="Percent"/>
  381. </xs:restriction>
  382. </xs:simpleType>
  383. <xs:complexType name="CellsType">
  384. <xs:sequence>
  385. <xs:element name="cell" maxOccurs="unbounded">
  386. <xs:complexType>
  387. <xs:attribute name="column" type="xs:int" use="required"/>
  388. <xs:attribute name="row" type="xs:int" use="required"/>
  389. <xs:attribute name="columnspan" type="xs:int" default="1"/>
  390. <xs:attribute name="rowspan" type="xs:int" default="1"/>
  391. <!-- ENHANCEMENT: v1.3 additions -->
  392. <xs:attribute name="anchor" type="tns:AnchorStylesEnum" default="Top,Left"/>
  393. <xs:attribute name="dock" type="tns:DockStyleEnum" default="None"/>
  394. <xs:attribute name="margin" type="xs:string" default="3,3,3,3"/>
  395. </xs:complexType>
  396. </xs:element>
  397. </xs:sequence>
  398. </xs:complexType>
  399. <xs:simpleType name="AnchorStylesEnum">
  400. <xs:restriction base="xs:string">
  401. <xs:enumeration value="Top"/>
  402. <xs:enumeration value="Bottom"/>
  403. <xs:enumeration value="Left"/>
  404. <xs:enumeration value="Right"/>
  405. <xs:enumeration value="Top,Left"/>
  406. <xs:enumeration value="Top,Right"/>
  407. <xs:enumeration value="Bottom,Left"/>
  408. <xs:enumeration value="Bottom,Right"/>
  409. <xs:enumeration value="Top,Bottom"/>
  410. <xs:enumeration value="Left,Right"/>
  411. <xs:enumeration value="Top,Bottom,Left,Right"/>
  412. <xs:enumeration value="None"/>
  413. </xs:restriction>
  414. </xs:simpleType>
  415. <xs:simpleType name="DockStyleEnum">
  416. <xs:restriction base="xs:string">
  417. <xs:enumeration value="None"/>
  418. <xs:enumeration value="Top"/>
  419. <xs:enumeration value="Bottom"/>
  420. <xs:enumeration value="Left"/>
  421. <xs:enumeration value="Right"/>
  422. <xs:enumeration value="Fill"/>
  423. </xs:restriction>
  424. </xs:simpleType>
  425. </xs:schema>