| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://quadarax.com/ui-layout-winforms-controls"
- xmlns:tns="http://quadarax.com/ui-layout-winforms-controls"
- xmlns:basic="http://quadarax.com/ui-layout-basic-controls"
- elementFormDefault="qualified"
- version="1.5">
- <!-- Import basic controls -->
- <xs:import namespace="http://quadarax.com/ui-layout-basic-controls" schemaLocation="ui-layout-basic-controls.xsd"/>
- <!-- WinForms Control Instance Type -->
- <xs:complexType name="WinFormsControlInstanceType" mixed="true">
- <xs:group ref="tns:WinFormsControlContentGroup" minOccurs="0" maxOccurs="unbounded"/>
- <!-- ENHANCEMENT: v1.3 WinForms-specific attributes -->
- <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
- <xs:attribute name="net-framework-version" type="xs:string" default="4.8"/>
- <xs:attribute name="net-version" type="xs:string" default="6.0"/>
- <xs:attribute name="visual-styles" type="xs:boolean" default="true"/>
- <xs:attribute name="dpi-awareness" type="tns:DpiAwarenessEnum" default="system"/>
- <xs:attribute name="theme-support" type="xs:boolean" default="false"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- ENHANCEMENT: DPI Awareness Enumeration -->
- <xs:simpleType name="DpiAwarenessEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="unaware"/>
- <xs:enumeration value="system"/>
- <xs:enumeration value="per-monitor"/>
- <xs:enumeration value="per-monitor-v2"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- FIXED: WinForms Control Content Group -->
- <xs:group name="WinFormsControlContentGroup">
- <xs:choice>
- <!-- Allow any elements from current namespace or basic controls namespace -->
- <xs:any namespace="##targetNamespace http://quadarax.com/ui-layout-basic-controls" processContents="lax" minOccurs="0" maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation>
- Allows any WinForms UI controls and basic controls with full flexibility.
- Eliminates need for explicit control definitions while maintaining WinForms control structure.
- </xs:documentation>
- </xs:annotation>
- </xs:any>
- </xs:choice>
- </xs:group>
- <!-- ENHANCEMENT: WinForms Data Binding Type -->
- <xs:complexType name="WinFormsDataBindingType">
- <xs:sequence>
- <xs:element name="binding" type="tns:WinFormsBindingType" maxOccurs="unbounded"/>
- <xs:element name="binding-source" type="tns:BindingSourceType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="WinFormsBindingType">
- <xs:attribute name="property-name" type="xs:string" use="required"/>
- <xs:attribute name="data-source" type="xs:string" use="required"/>
- <xs:attribute name="data-member" type="xs:string"/>
- <xs:attribute name="format-string" type="xs:string"/>
- <xs:attribute name="null-value" type="xs:string"/>
- <xs:attribute name="data-source-update-mode" type="tns:DataSourceUpdateModeEnum" default="OnValidation"/>
- <xs:attribute name="control-update-mode" type="tns:ControlUpdateModeEnum" default="OnPropertyChanged"/>
- </xs:complexType>
- <xs:complexType name="BindingSourceType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="data-source" type="xs:string"/>
- <xs:attribute name="data-member" type="xs:string"/>
- <xs:attribute name="allow-new" type="xs:boolean" default="true"/>
- <xs:attribute name="sort" type="xs:string"/>
- <xs:attribute name="filter" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="DataSourceUpdateModeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="OnValidation"/>
- <xs:enumeration value="OnPropertyChanged"/>
- <xs:enumeration value="Never"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ControlUpdateModeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="OnPropertyChanged"/>
- <xs:enumeration value="Never"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: WinForms Validation Type -->
- <xs:complexType name="WinFormsValidationType">
- <xs:sequence>
- <xs:element name="error-provider" type="tns:ErrorProviderType" maxOccurs="unbounded"/>
- <xs:element name="validation-rule" type="tns:ValidationRuleType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ErrorProviderType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="control" type="xs:string" use="required"/>
- <xs:attribute name="error-message" type="xs:string" use="required"/>
- <xs:attribute name="icon-alignment" type="tns:ErrorIconAlignmentEnum" default="MiddleRight"/>
- <xs:attribute name="icon-padding" type="xs:int" default="0"/>
- <xs:attribute name="blink-style" type="tns:ErrorBlinkStyleEnum" default="BlinkIfDifferentError"/>
- <xs:attribute name="blink-rate" type="xs:int" default="250"/>
- </xs:complexType>
- <xs:complexType name="ValidationRuleType">
- <xs:attribute name="control" type="xs:string" use="required"/>
- <xs:attribute name="validation-type" type="tns:ValidationTypeEnum" use="required"/>
- <xs:attribute name="pattern" type="xs:string"/>
- <xs:attribute name="min-value" type="xs:string"/>
- <xs:attribute name="max-value" type="xs:string"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <xs:attribute name="error-message" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="ErrorIconAlignmentEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="TopLeft"/>
- <xs:enumeration value="TopRight"/>
- <xs:enumeration value="MiddleLeft"/>
- <xs:enumeration value="MiddleRight"/>
- <xs:enumeration value="BottomLeft"/>
- <xs:enumeration value="BottomRight"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ErrorBlinkStyleEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="BlinkIfDifferentError"/>
- <xs:enumeration value="AlwaysBlink"/>
- <xs:enumeration value="NeverBlink"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ValidationTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="Required"/>
- <xs:enumeration value="RegularExpression"/>
- <xs:enumeration value="Range"/>
- <xs:enumeration value="StringLength"/>
- <xs:enumeration value="Email"/>
- <xs:enumeration value="Phone"/>
- <xs:enumeration value="Url"/>
- <xs:enumeration value="CreditCard"/>
- <xs:enumeration value="Custom"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: WinForms Localization Type -->
- <xs:complexType name="WinFormsLocalizationType">
- <xs:sequence>
- <xs:element name="localizable-property" type="tns:LocalizablePropertyType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="culture" type="xs:string" default="en-US"/>
- <xs:attribute name="right-to-left" type="tns:RightToLeftEnum" default="No"/>
- </xs:complexType>
- <xs:complexType name="LocalizablePropertyType">
- <xs:attribute name="control" type="xs:string" use="required"/>
- <xs:attribute name="property" type="xs:string" use="required"/>
- <xs:attribute name="resource-key" type="xs:string" use="required"/>
- <xs:attribute name="resource-file" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="RightToLeftEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="No"/>
- <xs:enumeration value="Yes"/>
- <xs:enumeration value="Inherit"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: WinForms Accessibility Type -->
- <xs:complexType name="WinFormsAccessibilityType">
- <xs:sequence>
- <xs:element name="accessibility-info" type="tns:AccessibilityInfoType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="AccessibilityInfoType">
- <xs:attribute name="control" type="xs:string" use="required"/>
- <xs:attribute name="accessible-name" type="xs:string"/>
- <xs:attribute name="accessible-description" type="xs:string"/>
- <xs:attribute name="accessible-role" type="tns:AccessibleRoleEnum" default="Default"/>
- <xs:attribute name="accessible-default-action-description" type="xs:string"/>
- <xs:attribute name="tab-index" type="xs:int"/>
- <xs:attribute name="tab-stop" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:simpleType name="AccessibleRoleEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="Default"/>
- <xs:enumeration value="None"/>
- <xs:enumeration value="Button"/>
- <xs:enumeration value="CheckBox"/>
- <xs:enumeration value="ComboBox"/>
- <xs:enumeration value="Link"/>
- <xs:enumeration value="List"/>
- <xs:enumeration value="ListItem"/>
- <xs:enumeration value="MenuBar"/>
- <xs:enumeration value="MenuItem"/>
- <xs:enumeration value="MenuPopup"/>
- <xs:enumeration value="ProgressBar"/>
- <xs:enumeration value="RadioButton"/>
- <xs:enumeration value="ScrollBar"/>
- <xs:enumeration value="Slider"/>
- <xs:enumeration value="StaticText"/>
- <xs:enumeration value="Text"/>
- <xs:enumeration value="ToolBar"/>
- <xs:enumeration value="ToolTip"/>
- <xs:enumeration value="Tree"/>
- <xs:enumeration value="TreeItem"/>
- <xs:enumeration value="Window"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Printing Type -->
- <xs:complexType name="PrintingType">
- <xs:sequence>
- <xs:element name="print-document" type="tns:PrintDocumentType" minOccurs="0"/>
- <xs:element name="print-preview" type="tns:PrintPreviewType" minOccurs="0"/>
- <xs:element name="page-setup" type="tns:PageSetupType" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PrintDocumentType">
- <xs:attribute name="document-name" type="xs:string" default="Document"/>
- <xs:attribute name="default-page-settings" type="xs:string"/>
- <xs:attribute name="printer-settings" type="xs:string"/>
- <xs:attribute name="origin-at-margins" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="PrintPreviewType">
- <xs:attribute name="auto-zoom" type="xs:boolean" default="true"/>
- <xs:attribute name="zoom" type="xs:decimal" default="0.3"/>
- <xs:attribute name="columns" default="1">
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="1"/>
- <xs:maxInclusive value="10"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="rows" default="1">
- <xs:simpleType>
- <xs:restriction base="xs:int">
- <xs:minInclusive value="1"/>
- <xs:maxInclusive value="10"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="start-page" type="xs:int" default="0"/>
- </xs:complexType>
- <xs:complexType name="PageSetupType">
- <xs:attribute name="margins" type="xs:string" default="100,100,100,100"/>
- <xs:attribute name="paper-size" type="tns:PaperSizeEnum" default="Letter"/>
- <xs:attribute name="landscape" type="xs:boolean" default="false"/>
- <xs:attribute name="color" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:simpleType name="PaperSizeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="Letter"/>
- <xs:enumeration value="Legal"/>
- <xs:enumeration value="A4"/>
- <xs:enumeration value="A3"/>
- <xs:enumeration value="A5"/>
- <xs:enumeration value="Tabloid"/>
- <xs:enumeration value="Custom"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Help System Type -->
- <xs:complexType name="HelpSystemType">
- <xs:sequence>
- <xs:element name="help-provider" type="tns:HelpProviderType" minOccurs="0"/>
- <xs:element name="context-help" type="tns:ContextHelpType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="HelpProviderType">
- <xs:attribute name="help-namespace" type="xs:string"/>
- <xs:attribute name="help-navigator" type="tns:HelpNavigatorEnum" default="Topic"/>
- </xs:complexType>
- <xs:complexType name="ContextHelpType">
- <xs:attribute name="control" type="xs:string" use="required"/>
- <xs:attribute name="help-string" type="xs:string"/>
- <xs:attribute name="help-keyword" type="xs:string"/>
- <xs:attribute name="help-navigator" type="tns:HelpNavigatorEnum" default="Topic"/>
- <xs:attribute name="show-help" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:simpleType name="HelpNavigatorEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="Topic"/>
- <xs:enumeration value="TableOfContents"/>
- <xs:enumeration value="Index"/>
- <xs:enumeration value="Find"/>
- <xs:enumeration value="AssociateIndex"/>
- <xs:enumeration value="KeywordIndex"/>
- <xs:enumeration value="TopicId"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- WinForms-specific supporting types -->
- <xs:complexType name="TabPagesType">
- <xs:sequence>
- <xs:element name="tabpage" maxOccurs="unbounded">
- <xs:complexType>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="tooltip" type="xs:string"/>
- <xs:attribute name="imageindex" type="xs:int" default="-1"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="image-key" type="xs:string"/>
- <xs:attribute name="use-visual-style-back-color" type="xs:boolean" default="false"/>
- <xs:attribute name="back-color" type="xs:string"/>
- <xs:attribute name="fore-color" type="xs:string"/>
- <xs:attribute name="font" type="xs:string"/>
- <xs:attribute name="padding" type="xs:string" default="3,3,3,3"/>
- <xs:attribute name="auto-scroll" type="xs:boolean" default="false"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PanelsType">
- <xs:sequence>
- <xs:element name="panel" maxOccurs="2">
- <xs:complexType>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="fixed-panel" type="tns:FixedPanelEnum" default="None"/>
- <xs:attribute name="splitter-distance" type="xs:int"/>
- <xs:attribute name="min-size" type="xs:int" default="25"/>
- <xs:attribute name="collapsed" type="xs:boolean" default="false"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:simpleType name="FixedPanelEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="None"/>
- <xs:enumeration value="Panel1"/>
- <xs:enumeration value="Panel2"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="TableLayoutType">
- <xs:sequence>
- <xs:element name="columns" type="tns:TableColumnsType"/>
- <xs:element name="rows" type="tns:TableRowsType"/>
- <xs:element name="cells" type="tns:CellsType"/>
- </xs:sequence>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="grow-style" type="tns:TableLayoutPanelGrowStyleEnum" default="AddRows"/>
- <xs:attribute name="cell-border-style" type="tns:TableLayoutPanelCellBorderStyleEnum" default="None"/>
- </xs:complexType>
- <xs:simpleType name="TableLayoutPanelGrowStyleEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="FixedSize"/>
- <xs:enumeration value="AddRows"/>
- <xs:enumeration value="AddColumns"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="TableLayoutPanelCellBorderStyleEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="None"/>
- <xs:enumeration value="Single"/>
- <xs:enumeration value="Inset"/>
- <xs:enumeration value="InsetDouble"/>
- <xs:enumeration value="Outset"/>
- <xs:enumeration value="OutsetDouble"/>
- <xs:enumeration value="OutsetPartial"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="TableColumnsType">
- <xs:sequence>
- <xs:element name="column" maxOccurs="unbounded">
- <xs:complexType>
- <xs:attribute name="sizetype" type="tns:SizeTypeEnum" use="required"/>
- <xs:attribute name="size" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="min-size" type="xs:int" default="5"/>
- <xs:attribute name="max-size" type="xs:int" default="0"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="TableRowsType">
- <xs:sequence>
- <xs:element name="row" maxOccurs="unbounded">
- <xs:complexType>
- <xs:attribute name="sizetype" type="tns:SizeTypeEnum" use="required"/>
- <xs:attribute name="size" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="min-size" type="xs:int" default="5"/>
- <xs:attribute name="max-size" type="xs:int" default="0"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:simpleType name="SizeTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="AutoSize"/>
- <xs:enumeration value="Absolute"/>
- <xs:enumeration value="Percent"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="CellsType">
- <xs:sequence>
- <xs:element name="cell" maxOccurs="unbounded">
- <xs:complexType>
- <xs:attribute name="column" type="xs:int" use="required"/>
- <xs:attribute name="row" type="xs:int" use="required"/>
- <xs:attribute name="columnspan" type="xs:int" default="1"/>
- <xs:attribute name="rowspan" type="xs:int" default="1"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="anchor" type="tns:AnchorStylesEnum" default="Top,Left"/>
- <xs:attribute name="dock" type="tns:DockStyleEnum" default="None"/>
- <xs:attribute name="margin" type="xs:string" default="3,3,3,3"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:simpleType name="AnchorStylesEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="Top"/>
- <xs:enumeration value="Bottom"/>
- <xs:enumeration value="Left"/>
- <xs:enumeration value="Right"/>
- <xs:enumeration value="Top,Left"/>
- <xs:enumeration value="Top,Right"/>
- <xs:enumeration value="Bottom,Left"/>
- <xs:enumeration value="Bottom,Right"/>
- <xs:enumeration value="Top,Bottom"/>
- <xs:enumeration value="Left,Right"/>
- <xs:enumeration value="Top,Bottom,Left,Right"/>
- <xs:enumeration value="None"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="DockStyleEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="None"/>
- <xs:enumeration value="Top"/>
- <xs:enumeration value="Bottom"/>
- <xs:enumeration value="Left"/>
- <xs:enumeration value="Right"/>
- <xs:enumeration value="Fill"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:schema>
|