Jelajahi Sumber

fixes under CLAUDE

Dalibor Votruba 11 bulan lalu
induk
melakukan
e735d5fb4d

+ 9 - 0
UILayoutDefinitionFormat/.claude/settings.local.json

@@ -0,0 +1,9 @@
+{
+  "permissions": {
+    "allow": [
+      "Bash(find:*)",
+      "Bash(xmlstarlet val:*)"
+    ],
+    "deny": []
+  }
+}

+ 104 - 0
UILayoutDefinitionFormat/CLAUDE.md

@@ -0,0 +1,104 @@
+# CLAUDE.md
+
+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
+
+## 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.3 includes advanced features like state management, accessibility compliance, AI assistance, and performance optimization.
+
+## Architecture
+
+### Core Components
+
+**XML Schema Definitions (.xsd files)**
+- `ui-layout-def.xsd` - Main schema definition with root elements and structure
+- `ui-layout-patterns.xsd` - Pattern definitions for controls, structures, and wireframes
+- `ui-layout-views.xsd` - Advanced view definitions with state management and AI features
+- `ui-layout-validation.xsd` - Validation rules, custom validators, and profiles
+- `ui-layout-basic-controls.xsd` - Basic UI control definitions
+- `ui-layout-avalonia-controls.xsd` - Avalonia platform-specific controls
+- `ui-layout-winforms-controls.xsd` - Windows Forms platform-specific controls
+
+**Definition Files (Definitions/ folder)**
+- `abstract-controls.xml` - Base control definitions with common attributes and behaviors
+- `avalonia-controls.xml` - Avalonia UI platform-specific control implementations
+- `web-controls.xml` - Web platform control definitions
+- `winform-controls.xml` - Windows Forms control definitions
+
+**Sample Files (Samples/ folder)**
+- `sample.xml` - Comprehensive v1.3 sample showcasing all features
+- `business-views.xml` - Business logic view examples
+- Various platform-specific samples (kde-controls.xml, web-controls.xml, etc.)
+
+### Key Architecture Principles
+
+1. **Modular Design**: External includes allow splitting definitions across multiple files
+2. **Platform Abstraction**: Unified control definitions with platform-specific implementations
+3. **View-First Architecture**: Business views organize related windows and define data context
+4. **Pattern-Based Design**: All controls must be defined in patterns before use
+5. **Comprehensive Validation**: Advanced validation system with custom validators and profiles
+
+## Development Commands
+
+**XML Validation**
+```bash
+# Validate XML files against XSD schemas using XMLStarlet
+xmlstarlet val -e -s ui-layout-def.xsd sample.xml
+xmlstarlet val -e -s ui-layout-def.xsd Samples/*.xml
+
+# Alternative with xmllint if XMLStarlet unavailable
+xmllint --schema ui-layout-def.xsd sample.xml --noout
+```
+
+**Schema Validation**
+```bash
+# Validate individual schema files
+xmlstarlet val -e -s http://www.w3.org/2001/XMLSchema.xsd ui-layout-def.xsd
+xmllint --schema http://www.w3.org/2001/XMLSchema.xsd ui-layout-def.xsd --noout
+```
+
+**XML Processing and Querying**
+```bash
+# Query XML structure using XMLStarlet
+xmlstarlet sel -t -m "//control" -v "@name" -n abstract-controls.xml
+xmlstarlet sel -t -m "//window" -v "@name" -n sample.xml
+
+# Format/pretty-print XML files
+xmlstarlet fo sample.xml > formatted-sample.xml
+```
+
+## File Structure Understanding
+
+- **Root Schema**: `ui-layout-def.xsd` defines the main document structure
+- **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.3 features including AI assistance, accessibility, and performance optimization
+
+## Important Development Notes
+
+### Schema Versioning
+- Current version: 1.3
+- Schema version must match in `schema-version` attribute
+- Platform compatibility defined in `platform-constraints`
+
+### Validation Requirements
+- All interactive controls require accessibility attributes for WCAG compliance
+- Performance targets recommended for data-heavy views
+- Security attributes required for high-security applications
+
+### Control Definition Process
+1. Define abstract control in `Definitions/abstract-controls.xml`
+2. Add platform-specific implementations in appropriate control files
+3. Update schema definitions to include new control types
+4. Add validation rules for new attributes
+
+### v1.3 Enhancements
+- Advanced state management with Redux/MobX patterns
+- Comprehensive accessibility framework (WCAG 2.1 AA/AAA)
+- Performance optimization system with metrics and targets
+- Security framework with GDPR compliance
+- Enhanced testing framework with automation support
+- Advanced localization with RTL support
+
+When working with this codebase, always validate XML against schemas and ensure new features follow the established patterns for platform abstraction and modular design.

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

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- FIXED: Simple UI Layout Definition Example v1.3 -->
-<ui-layout-def xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<ui-layout-def xmlns="ui-layout-definition"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="ui-layout-definition ui-layout-def.xsd"
                version="1.3"
                schema-version="1.3"

+ 3 - 2
UILayoutDefinitionFormat/Samples/sample.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Enhanced UI Layout Definition Format Sample v1.3 -->
-<ui-layout-def xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<ui-layout-def xmlns="ui-layout-definition"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="ui-layout-definition ui-layout-def.xsd"
                version="1.3"
                schema-version="1.3"
@@ -81,7 +82,7 @@
                    category="performance" description="Performance optimization level" />
       </attributes>
       <validation>
-        <rule name="max-columns" type="range" pattern="count(columns/column) <= 50" 
+        <rule name="max-columns" type="range" pattern="count(columns/column) &lt;= 50" 
               message="Maximum 50 columns allowed for performance" severity="warning" />
         <rule name="accessibility-headers" type="custom" message="Column headers required for accessibility" 
               severity="error" />

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

@@ -147,7 +147,7 @@
   </xs:complexType>
 
   <!-- ComboBox Control Type -->
-  <xs:complexType name="ComboBoxType">
+  <xs:complexType name="ComboBoxType" mixed="true">
     <xs:complexContent>
       <xs:extension base="tns:BasicControlInstanceType">
         <xs:sequence>
@@ -220,7 +220,7 @@
   <!-- NAVIGATION CONTROLS -->
   
   <!-- Menu Control Type -->
-  <xs:complexType name="MenuType">
+  <xs:complexType name="MenuType" mixed="true">
     <xs:complexContent>
       <xs:extension base="tns:BasicControlInstanceType">
         <xs:sequence>
@@ -237,7 +237,7 @@
   <!-- LIST CONTROLS -->
   
   <!-- ListView Control Type -->
-  <xs:complexType name="ListViewType">
+  <xs:complexType name="ListViewType" mixed="true">
     <xs:complexContent>
       <xs:extension base="tns:BasicControlInstanceType">
         <xs:sequence>
@@ -260,7 +260,7 @@
   </xs:complexType>
 
   <!-- TreeView Control Type -->
-  <xs:complexType name="TreeViewType">
+  <xs:complexType name="TreeViewType" mixed="true">
     <xs:complexContent>
       <xs:extension base="tns:BasicControlInstanceType">
         <xs:sequence>

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

@@ -316,8 +316,22 @@
   <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" type="xs:int" default="1" min="1" max="10"/>
-    <xs:attribute name="rows" type="xs:int" default="1" min="1" max="10"/>
+    <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>