Ver código fonte

v1.6 - Add supported view modes and enhanced descriptions

  New Features:                                                                                                                                                                                                                                                                                                                                        - Add supported-view-modes element to ViewType with grid, gallery, tree modes
  - Add description attribute to DataPropertyType for documenting data context
  - Add description attribute to ViewBehaviorType for documenting behaviors
  - Add description attribute to PublishedEventType for documenting events

  Version Updates:
  - Update all 8 XSD schema files to version 1.6
  - Update all default schema-version attributes to 1.6
  - Update fixed schema-version constraint to 1.6

  Files Updated:
  - ui-layout-views.xsd: New SupportedViewModesType, ViewModeType, ViewModeNameEnum
  - ui-layout-def.xsd, ui-layout-patterns.xsd, ui-layout-validation.xsd
  - ui-layout-avalonia-controls.xsd, ui-layout-winforms-controls.xsd
  - ui-layout-basic-controls.xsd, ui-layout-webawesome-controls.xsd
  - All sample XML files updated to schema-version 1.6
  - Definitions/webawesome-controls.xml updated to schema-version 1.6
  - README.md: Document v1.6 features and migration guide
  - CLAUDE.md: Update version references and add v1.6 enhancements

  Breaking Changes: None (backward compatible with v1.5)

  Or a shorter version:

  v1.6 - Add supported view modes and description attributes

  - Add supported-view-modes element (grid, gallery, tree) to views
  - Add description attributes to DataPropertyType, ViewBehaviorType, PublishedEventType
  - Update all XSD schemas and XML samples to version 1.6
  - Update README.md and CLAUDE.md documentation
Dalibor Votruba 5 meses atrás
pai
commit
0283966bfd

+ 12 - 2
UILayoutDefinitionFormat/.claude/settings.local.json

@@ -2,8 +2,18 @@
   "permissions": {
     "allow": [
       "Bash(find:*)",
-      "Bash(xmlstarlet val:*)"
+      "Bash(xmlstarlet val:*)",
+      "Bash(grep:*)",
+      "Bash(where:*)",
+      "Bash(ls:*)",
+      "Bash(done)",
+      "Bash(\"D:\\\\Projects\\\\quadarax\\\\@tools\\\\xmlstarlet-1.6.1\\\\xml.exe\" val:*)",
+      "Bash(\"D:\\\\Projects\\\\quadarax\\\\@tools\\\\xmlstarlet-1.6.1\\\\xml.exe\" val -e -s ui-layout-def.xsd Samples/simple-working.xml)",
+      "Bash(\"D:\\\\Projects\\\\quadarax\\\\@tools\\\\xmlstarlet-1.6.1\\\\xml.exe\" val -e -s ui-layout-patterns.xsd Definitions/abstract-controls.xml)",
+      "Bash(\"D:\\\\Projects\\\\quadarax\\\\@tools\\\\xmlstarlet-1.6.1\\\\xml.exe\" val -e -s ui-layout-webawesome-controls.xsd Definitions/webawesome-controls.xml)",
+      "Bash(\"D:\\\\Projects\\\\quadarax\\\\@tools\\\\xmlstarlet-1.6.1\\\\xml.exe\" val -e -s ui-layout-def.xsd Samples/simple-working.xml Samples/sample-minimal.xml)",
+      "Bash(\"D:\\\\Projects\\\\quadarax\\\\@tools\\\\xmlstarlet-1.6.1\\\\xml.exe\" val -e -s ui-layout-def.xsd Samples/sample.xml Samples/platform-config-sample.xml)"
     ],
     "deny": []
   }
-}
+}

+ 12 - 7
UILayoutDefinitionFormat/CLAUDE.md

@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
 
 ## Repository Overview
 
-This is the UI Layout Definition Format repository - a comprehensive XML-based format for describing cross-platform user interfaces with inheritance, validation, and modern development practices. Version 1.5 includes advanced features like state management, accessibility compliance, AI assistance, and performance optimization.
+This is the UI Layout Definition Format repository - a comprehensive XML-based format for describing cross-platform user interfaces with inheritance, validation, and modern development practices. Version 1.6 includes advanced features like state management, accessibility compliance, AI assistance, performance optimization, and supported view modes.
 
 ## Architecture
 
@@ -28,7 +28,7 @@ This is the UI Layout Definition Format repository - a comprehensive XML-based f
 - `webawesome-controls.xml` - Web Awesome component definitions with modern web controls
 
 **Sample Files (Samples/ folder)**
-- `sample.xml` - Comprehensive v1.5 sample showcasing all features
+- `sample.xml` - Comprehensive v1.6 sample showcasing all features
 - `business-views.xml` - Business logic view examples
 - Various platform-specific samples (kde-controls.xml, web-controls.xml, etc.)
 
@@ -93,12 +93,12 @@ xmlstarlet fo sample.xml > formatted-sample.xml
 - **External Schemas**: Platform-specific and feature-specific schemas are imported
 - **Control Hierarchy**: All controls inherit from `CommonControl` in `abstract-controls.xml`
 - **Validation System**: Custom validators and profiles in validation includes
-- **Sample Implementation**: `sample.xml` demonstrates v1.5 features including AI assistance, accessibility, and performance optimization
+- **Sample Implementation**: `sample.xml` demonstrates v1.6 features including AI assistance, accessibility, performance optimization, and supported view modes
 
 ## Important Development Notes
 
 ### Schema Versioning
-- Current version: 1.5
+- Current version: 1.6
 - Schema version must match in `schema-version` attribute
 - Platform compatibility defined in `platform-constraints`
 
@@ -114,7 +114,7 @@ xmlstarlet fo sample.xml > formatted-sample.xml
 4. Add validation rules for new attributes
 
 ### Gallery Control Implementation
-The Gallery control is a new v1.5 feature for displaying collections with customizable templates:
+The Gallery control (introduced in v1.5) is for displaying collections with customizable templates:
 
 **Key Features:**
 - Inherits from CommonControl with ListView-like behavior
@@ -128,6 +128,11 @@ The Gallery control is a new v1.5 feature for displaying collections with custom
 - `ui-layout-basic-controls.xsd` - Gallery schema types and validation rules
 - `README.md` - Documentation and usage examples
 
+### v1.6 Enhancements
+- **Supported View Modes**: New element for defining display modes (grid, gallery, tree) per view
+- **Enhanced Descriptions**: Added description attributes to DataPropertyType, ViewBehaviorType, and PublishedEventType
+- All schema files updated to version 1.6 with consistent defaults
+
 ### v1.5 Enhancements
 - Advanced state management with Redux/MobX patterns
 - Comprehensive accessibility framework (WCAG 2.1 AA/AAA)
@@ -135,10 +140,10 @@ The Gallery control is a new v1.5 feature for displaying collections with custom
 - Security framework with GDPR compliance
 - Enhanced testing framework with automation support
 - Advanced localization with RTL support
-- **New Gallery Control**: Specialized list control for displaying collections with customizable box templates
+- **Gallery Control**: Specialized list control for displaying collections with customizable box templates
 
 ### Web Awesome Controls Implementation
-Version 1.5 adds comprehensive Web Awesome (formerly Shoelace) component support for modern web applications:
+Web Awesome (formerly Shoelace) component support for modern web applications (added in v1.5):
 
 **Key Features:**
 - Complete Web Awesome component library (75+ controls)

+ 1 - 1
UILayoutDefinitionFormat/Definitions/webawesome-controls.xml

@@ -2,7 +2,7 @@
 <!-- Web Awesome Control Definitions for UI Layout Definition Format -->
 <!-- Version: 1.5 - Web Awesome Components (formerly Shoelace) -->
 <patterns xmlns="http://quadarax.com/ui-layout-webawesome-controls"
-         schema-version="1.5"
+         schema-version="1.6"
          target-platform="web">
   
   <!-- Base Web Component -->

+ 5 - 5
UILayoutDefinitionFormat/Samples/platform-config-sample.xml

@@ -4,7 +4,7 @@
                xmlns="ui-layout-definition"
                xsi:schemaLocation="ui-layout-definition ui-layout-def.xsd"
                version="1.5"
-               schema-version="1.5"
+               schema-version="1.6"
                min-version="1.0"
                max-version="2.0"
                target-platform="avalonia"
@@ -49,7 +49,7 @@
     <pattern-include src="performance-controls.xml" important="false" min-version="1.3" />
     
     <!-- Platform-specific enhanced control -->
-    <control name="AvaloniaEnhancedDataGrid" type="data" category="avalonia-data" schema-version="1.5">
+    <control name="AvaloniaEnhancedDataGrid" type="data" category="avalonia-data" schema-version="1.6">
       <description>Avalonia-specific data grid with advanced features</description>
       <constraints>
         <allowed-parents>Panel,Grid,ScrollViewer</allowed-parents>
@@ -94,7 +94,7 @@
     
     <!-- Platform-optimized view -->
     <view name="AvaloniaProductManagementView" type="business-entity" category="core" 
-          schema-version="1.5" platform="avalonia" singleton="false" lazy-loading="true" 
+          schema-version="1.6" platform="avalonia" singleton="false" lazy-loading="true" 
           cacheable="true" priority="high">
       <description>Product management optimized for Avalonia UI</description>
       
@@ -221,7 +221,7 @@
   
   <!-- Enhanced main window with Avalonia-specific features -->
   <window name="ProductListWindow" title="Product Management - Avalonia" 
-          view="AvaloniaProductManagementView" target-platform="avalonia" schema-version="1.5">
+          view="AvaloniaProductManagementView" target-platform="avalonia" schema-version="1.6">
     
     <attributes>
       <attribute name="width" value="1200" />
@@ -436,7 +436,7 @@
   
   <!-- Product edit dialog with Avalonia features -->
   <window name="ProductEditDialog" title="Edit Product" 
-          view="AvaloniaProductManagementView" target-platform="avalonia" schema-version="1.5">
+          view="AvaloniaProductManagementView" target-platform="avalonia" schema-version="1.6">
     
     <attributes>
       <attribute name="width" value="500" />

+ 1 - 1
UILayoutDefinitionFormat/Samples/sample-minimal.xml

@@ -7,7 +7,7 @@
                xmlns:views="http://quadarax.com/ui-layout-views"
                xsi:schemaLocation="http://quadarax.com/ui-layout-definition ui-layout-def.xsd"
                version="1.3"
-               schema-version="1.5"
+               schema-version="1.6"
                target-platform="basic"
                accessibility-compliance="wcag-aa">
   

+ 7 - 7
UILayoutDefinitionFormat/Samples/sample.xml

@@ -7,7 +7,7 @@
                xmlns:views="http://quadarax.com/ui-layout-views"
                xsi:schemaLocation="http://quadarax.com/ui-layout-definition ui-layout-def.xsd"
                version="1.5"
-               schema-version="1.5"
+               schema-version="1.6"
                min-version="1.0"
                max-version="2.0"
                target-platform="avalonia"
@@ -62,7 +62,7 @@
     <pattern-include src="performance-controls.xml" important="false" min-version="1.3" />
     
     <!-- Enhanced Control with v1.3 Features -->
-    <control name="EnhancedDataGrid" type="data" category="avalonia-data" schema-version="1.5">
+    <control name="EnhancedDataGrid" type="data" category="avalonia-data" schema-version="1.6">
       <description>High-performance data grid with virtualization and accessibility</description>
       <constraints>
         <allowed-parents>Panel,ScrollViewer,Border</allowed-parents>
@@ -109,7 +109,7 @@
     </control>
     
     <!-- Responsive Layout Wireframe -->
-    <wireframe name="ResponsiveAppLayout" type="base-layout" schema-version="1.5">
+    <wireframe name="ResponsiveAppLayout" type="base-layout" schema-version="1.6">
       <description>Responsive application layout with accessibility and performance optimization</description>
       <responsive>
         <breakpoint name="mobile" max-width="768" orientation="any" template-override="MobileLayout" />
@@ -154,7 +154,7 @@
     
     <!-- Modern AI-Enhanced Application View -->
     <view name="ModernDashboardView" type="ai-assisted" category="ai-enhanced" 
-          schema-version="1.5" platform="avalonia" singleton="true" lazy-loading="false" 
+          schema-version="1.6" platform="avalonia" singleton="true" lazy-loading="false" 
           cacheable="true" priority="high">
       <description>AI-enhanced dashboard with real-time analytics and collaboration</description>
       
@@ -380,7 +380,7 @@
   <!-- ENHANCED: Modern Dashboard Window with v1.3 Features -->
   <window name="MainDashboard" title="AI-Enhanced Analytics Dashboard" 
           wireframe="ResponsiveAppLayout" view="ModernDashboardView"
-          target-platform="avalonia" schema-version="1.5">
+          target-platform="avalonia" schema-version="1.6">
     
     <attributes>
       <attribute name="width" value="1400" />
@@ -629,7 +629,7 @@
   
   <!-- AI Insights Panel Window -->
   <window name="AIInsightsPanel" title="AI Insights" view="ModernDashboardView"
-          target-platform="avalonia" schema-version="1.5">
+          target-platform="avalonia" schema-version="1.6">
     
     <attributes>
       <attribute name="width" value="400" />
@@ -718,7 +718,7 @@
   <!-- Settings Dialog with Advanced Configuration -->
   <window name="SettingsDialog" title="Application Settings" 
           wireframe="DialogLayout" view="ModernDashboardView"
-          target-platform="avalonia" schema-version="1.5">
+          target-platform="avalonia" schema-version="1.6">
     
     <attributes>
       <attribute name="width" value="600" />

+ 3 - 3
UILayoutDefinitionFormat/Samples/simple-working.xml

@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Simple Working UI Layout Definition Example v1.3 -->
+<!-- Simple Working UI Layout Definition Example v1.6 -->
 <ui-layout-def xmlns="http://quadarax.com/ui-layout-definition"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://quadarax.com/ui-layout-definition ui-layout-def.xsd"
-               version="1.3"
-               schema-version="1.5"
+               version="1.6"
+               schema-version="1.6"
                target-platform="basic"
                accessibility-compliance="wcag-aa">
   

+ 2 - 2
UILayoutDefinitionFormat/ui-layout-avalonia-controls.xsd

@@ -4,7 +4,7 @@
            xmlns:tns="http://quadarax.com/ui-layout-avalonia-controls"
            xmlns:basic="http://quadarax.com/ui-layout-basic-controls"
            elementFormDefault="qualified"
-           version="1.5">
+           version="1.6">
 
   <!-- Import basic controls -->
   <xs:import namespace="http://quadarax.com/ui-layout-basic-controls" schemaLocation="ui-layout-basic-controls.xsd"/>
@@ -13,7 +13,7 @@
   <xs:complexType name="AvaloniaControlInstanceType" mixed="true">
     <xs:group ref="tns:AvaloniaControlContentGroup" minOccurs="0" maxOccurs="unbounded"/>
     <!-- ENHANCEMENT: v1.3 Avalonia-specific attributes -->
-    <xs:attribute name="schema-version" type="xs:string" default="1.3"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
     <xs:attribute name="avalonia-version" type="xs:string" default="11.0"/>
     <xs:attribute name="theme-variant" type="tns:ThemeVariantEnum" default="default"/>
     <xs:attribute name="design-mode" type="xs:boolean" default="false"/>

+ 1 - 1
UILayoutDefinitionFormat/ui-layout-basic-controls.xsd

@@ -3,7 +3,7 @@
            targetNamespace="http://quadarax.com/ui-layout-basic-controls"
            xmlns:tns="http://quadarax.com/ui-layout-basic-controls"
            elementFormDefault="qualified"
-           version="1.5">
+           version="1.6">
 
   <!-- Basic Control Instance Base Type -->
   <xs:complexType name="BasicControlInstanceType" mixed="true">

+ 5 - 5
UILayoutDefinitionFormat/ui-layout-def.xsd

@@ -10,7 +10,7 @@
            xmlns:avalonia="http://quadarax.com/ui-layout-avalonia-controls"
            xmlns:webawesome="http://quadarax.com/ui-layout-webawesome-controls"
            elementFormDefault="qualified"
-           version="1.5">
+           version="1.6">
 
   <!-- Import external schemas -->
   <xs:import namespace="http://quadarax.com/ui-layout-patterns" schemaLocation="ui-layout-patterns.xsd"/>
@@ -61,8 +61,8 @@
       <xs:element name="window-includes" type="tns:WindowIncludesType" minOccurs="0"/>
       <xs:element name="window" type="tns:WindowType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
-    <xs:attribute name="version" type="xs:string" default="1.5"/>
-    <xs:attribute name="schema-version" type="xs:string" fixed="1.5"/>
+    <xs:attribute name="version" type="xs:string" default="1.6"/>
+    <xs:attribute name="schema-version" type="xs:string" fixed="1.6"/>
     <xs:attribute name="min-version" type="xs:string" default="1.0"/>
     <xs:attribute name="max-version" type="xs:string" default="2.0"/>
     <xs:attribute name="target-platform" type="tns:PlatformEnum" default="basic"/>
@@ -74,7 +74,7 @@
     <xs:sequence>
       <xs:element name="window" type="tns:WindowType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
     <xs:attribute name="target-platform" type="tns:PlatformEnum" default="basic"/>
   </xs:complexType>
 
@@ -198,7 +198,7 @@
     <xs:attribute name="view" type="xs:string"/>
     <xs:attribute name="target-platform" type="tns:PlatformEnum"/>
     <xs:attribute name="inherits" type="xs:string"/>
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
   </xs:complexType>
 
   <!-- Window Attributes Type -->

+ 5 - 5
UILayoutDefinitionFormat/ui-layout-patterns.xsd

@@ -3,7 +3,7 @@
            targetNamespace="http://quadarax.com/ui-layout-patterns"
            xmlns:tns="http://quadarax.com/ui-layout-patterns"
            elementFormDefault="qualified"
-           version="1.5">
+           version="1.6">
 
   <!-- Root element for pattern include files -->
   <xs:element name="patterns" type="tns:PatternsIncludeFileType"/>
@@ -16,7 +16,7 @@
       <xs:element name="wireframe" type="tns:WireframeType"/>
     </xs:choice>
     <!-- ENHANCEMENT: Version tracking for pattern files -->
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
     <xs:attribute name="target-platform" type="tns:PlatformEnum" default="basic"/>
   </xs:complexType>
 
@@ -52,7 +52,7 @@
     <xs:attribute name="inherits" type="xs:string"/>
     <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
     <!-- ENHANCEMENT: Version tracking -->
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
   </xs:complexType>
 
   <!-- Control Type Enumeration -->
@@ -126,7 +126,7 @@
     <xs:attribute name="inherits" type="xs:string"/>
     <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
     <!-- ENHANCEMENT: Version tracking -->
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
   </xs:complexType>
 
   <!-- Composition Type -->
@@ -155,7 +155,7 @@
     <xs:attribute name="name" type="xs:string" use="required"/>
     <xs:attribute name="type" type="xs:string" use="required"/>
     <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
   </xs:complexType>
 
   <!-- FIXED: Responsive Type -->

+ 2 - 2
UILayoutDefinitionFormat/ui-layout-validation.xsd

@@ -3,7 +3,7 @@
            targetNamespace="http://quadarax.com/ui-layout-validation"
            xmlns:tns="http://quadarax.com/ui-layout-validation"
            elementFormDefault="qualified"
-           version="1.5">
+           version="1.6">
 
   <!-- Root element for validation rule include files -->
   <xs:element name="validation-rules" type="tns:ValidationRulesIncludeFileType"/>
@@ -18,7 +18,7 @@
       <xs:element name="validation-profile" type="tns:ValidationProfileType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <!-- ENHANCEMENT: Version tracking for validation files -->
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
     <xs:attribute name="target-platform" type="tns:PlatformEnum" default="basic"/>
     <xs:attribute name="validation-level" type="tns:ValidationLevelEnum" default="standard"/>
   </xs:complexType>

+ 5 - 5
UILayoutDefinitionFormat/ui-layout-webawesome-controls.xsd

@@ -3,7 +3,7 @@
            targetNamespace="http://quadarax.com/ui-layout-webawesome-controls"
            xmlns:tns="http://quadarax.com/ui-layout-webawesome-controls"
            elementFormDefault="qualified"
-           version="1.5">
+           version="1.6">
 
   <!-- 
     Web Awesome Controls XSD Schema Extension
@@ -21,7 +21,7 @@
       <xs:element name="structure" type="tns:StructureType" minOccurs="0" maxOccurs="unbounded"/>
       <xs:element name="wireframe" type="tns:WireframeType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
     <xs:attribute name="target-platform" type="xs:string" default="web"/>
   </xs:complexType>
 
@@ -41,7 +41,7 @@
     <xs:attribute name="category" type="xs:string" use="required"/>
     <xs:attribute name="inherits" type="xs:string"/>
     <xs:attribute name="platform" type="xs:string" default="web"/>
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
   </xs:complexType>
 
   <!-- Constraints Type -->
@@ -234,7 +234,7 @@
     <xs:attribute name="category" type="xs:string" use="required"/>
     <xs:attribute name="inherits" type="xs:string"/>
     <xs:attribute name="platform" type="xs:string" default="web"/>
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
   </xs:complexType>
 
   <!-- Composition Type -->
@@ -263,7 +263,7 @@
     <xs:attribute name="name" type="xs:string" use="required"/>
     <xs:attribute name="type" type="xs:string" use="required"/>
     <xs:attribute name="platform" type="xs:string" default="web"/>
-    <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
+    <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
   </xs:complexType>
 
   <!-- Responsive Type -->

+ 2 - 2
UILayoutDefinitionFormat/ui-layout-winforms-controls.xsd

@@ -4,7 +4,7 @@
            xmlns:tns="http://quadarax.com/ui-layout-winforms-controls"
            xmlns:basic="http://quadarax.com/ui-layout-basic-controls"
            elementFormDefault="qualified"
-           version="1.5">
+           version="1.6">
 
   <!-- Import basic controls -->
   <xs:import namespace="http://quadarax.com/ui-layout-basic-controls" schemaLocation="ui-layout-basic-controls.xsd"/>
@@ -13,7 +13,7 @@
   <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="schema-version" type="xs:string" default="1.6"/>
     <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"/>