| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Example: view-validation.xml -->
- <validation-rules xmlns="ui-layout-definition">
-
- <!-- View Structure Validation -->
- <rule name="view-definition-required">
- <description>Views must be properly defined before being referenced</description>
- <constraint>All view references in windows and dependencies must correspond to defined views</constraint>
- <constraint>View names must be unique within the document and included files</constraint>
- </rule>
-
- <rule name="view-window-association">
- <description>Windows must be properly associated with views</description>
- <constraint>Every window should be referenced by at least one view</constraint>
- <constraint>Windows referenced in view window-ref elements must exist</constraint>
- <constraint>Window roles within a view must be unique</constraint>
- </rule>
-
- <rule name="view-inheritance-validation">
- <description>View inheritance must be valid and acyclic</description>
- <constraint>Views can only inherit from other defined views</constraint>
- <constraint>Inheritance chains must not contain cycles</constraint>
- <constraint>Inherited view types must be compatible (base views can be inherited by any type)</constraint>
- <constraint>View categories must be compatible in inheritance hierarchies</constraint>
- </rule>
-
- <!-- View Dependencies Validation -->
- <rule name="view-dependency-validation">
- <description>View dependencies must be valid and resolvable</description>
- <constraint>Referenced views in dependencies must be defined</constraint>
- <constraint>Dependency relationships must be appropriate for the view types</constraint>
- <constraint>Required dependencies must be satisfiable</constraint>
- <constraint>Circular dependencies between views are not allowed</constraint>
- </rule>
-
- <rule name="view-relationship-validation">
- <description>View relationships must be semantically correct</description>
- <constraint>Lookup relationships should reference utility or business-entity views</constraint>
- <constraint>Detail relationships should reference views that can operate in detail mode</constraint>
- <constraint>Reference relationships should not create tight coupling</constraint>
- <constraint>Primary relationships in composite views must be unique</constraint>
- </rule>
-
- <!-- Data Context Validation -->
- <rule name="data-context-consistency">
- <description>Data context properties must be consistently defined</description>
- <constraint>Shared-scope properties must have compatible types across views</constraint>
- <constraint>Property names within a view must be unique</constraint>
- <constraint>Global-scope properties should be defined in base views or modules</constraint>
- <constraint>Data context types must be valid and resolvable</constraint>
- </rule>
-
- <rule name="data-binding-validation">
- <description>View data context bindings must be valid</description>
- <constraint>Window data-context-binding must reference existing data context properties</constraint>
- <constraint>Binding scopes must be appropriate for the window role</constraint>
- <constraint>Navigation contexts must reference valid data context properties</constraint>
- </rule>
-
- <!-- Navigation Validation -->
- <rule name="navigation-action-validation">
- <description>Navigation actions must be valid and reachable</description>
- <constraint>Navigation targets must reference defined windows within the view</constraint>
- <constraint>Navigation contexts must reference valid data context properties</constraint>
- <constraint>Action names within a view must be unique</constraint>
- <constraint>Required navigation actions must be implemented</constraint>
- </rule>
-
- <!-- Behavior Validation -->
- <rule name="behavior-scope-validation">
- <description>Behavior scopes must be appropriate and consistent</description>
- <constraint>Global-scope behaviors should be defined in base views or modules</constraint>
- <constraint>View-scope behaviors must be unique within the view</constraint>
- <constraint>Inherited behaviors can be overridden with compatible scopes</constraint>
- </rule>
-
- <!-- Communication Validation -->
- <rule name="event-communication-validation">
- <description>Inter-view communication must be properly defined</description>
- <constraint>Subscribed events must reference valid source views</constraint>
- <constraint>Event handlers must be implemented in the subscribing view</constraint>
- <constraint>Published events should be consumed by at least one subscriber</constraint>
- <constraint>Event data types must be compatible between publishers and subscribers</constraint>
- </rule>
-
- <!-- Composite View Validation -->
- <rule name="composite-view-validation">
- <description>Composite views must be properly structured</description>
- <constraint>Composed views must be defined and accessible</constraint>
- <constraint>Layout slots must correspond to wireframe slot definitions</constraint>
- <constraint>Primary role must be assigned to exactly one composed view</constraint>
- <constraint>Coordination rules must reference valid views and events</constraint>
- </rule>
-
- <!-- Module View Validation -->
- <rule name="module-view-validation">
- <description>Module views must properly organize related functionality</description>
- <constraint>Module views must contain at least one view reference</constraint>
- <constraint>Referenced views in modules must be defined</constraint>
- <constraint>Module dependencies must be valid and resolvable</constraint>
- <constraint>Main navigation items must reference contained views</constraint>
- </rule>
-
- <!-- Workflow Validation -->
- <rule name="workflow-validation">
- <description>Process flow workflows must be valid and navigable</description>
- <constraint>Workflow steps must reference valid windows within the view</constraint>
- <constraint>Step transitions must form a connected graph</constraint>
- <constraint>Workflow must have at least one starting step (no previous)</constraint>
- <constraint>Circular workflows must have explicit exit conditions</constraint>
- </rule>
-
- <!-- Metadata Validation -->
- <rule name="metadata-validation">
- <description>View metadata must be valid for code generation</description>
- <constraint>Model class names must follow naming conventions</constraint>
- <constraint>View model class names should end with 'ViewModel'</constraint>
- <constraint>Controller class names should end with 'Controller'</constraint>
- <constraint>Permission strings must follow defined permission patterns</constraint>
- </rule>
-
- <!-- View Type Validation -->
- <rule name="view-type-validation">
- <description>View types must be used appropriately</description>
- <constraint>Business-entity views should have CRUD operations</constraint>
- <constraint>Process-flow views should define workflow steps</constraint>
- <constraint>Dashboard views should aggregate data from other views</constraint>
- <constraint>Utility views should be designed for reuse</constraint>
- <constraint>Wizard views should have sequential navigation</constraint>
- <constraint>Base views should be designed for inheritance</constraint>
- </rule>
-
- <!-- Performance and Scalability -->
- <rule name="view-performance-validation">
- <description>Views should be designed for optimal performance</description>
- <constraint>Dependency depth should not exceed 5 levels</constraint>
- <constraint>Composite views should not contain more than 10 composed views</constraint>
- <constraint>Data context properties should have appropriate scopes</constraint>
- <constraint>Event subscriptions should not create performance bottlenecks</constraint>
- </rule>
-
- <!-- Security Validation -->
- <rule name="view-security-validation">
- <description>Views must implement proper security constraints</description>
- <constraint>Views with write operations must specify appropriate permissions</constraint>
- <constraint>Sensitive operations must require explicit permissions</constraint>
- <constraint>Cross-view data access must respect security boundaries</constraint>
- <constraint>Administrative views must have admin category or permissions</constraint>
- </rule>
-
- <!-- Accessibility Validation -->
- <rule name="view-accessibility-validation">
- <description>Views should support accessibility requirements</description>
- <constraint>Modal dialogs should have proper escape mechanisms</constraint>
- <constraint>Navigation actions should be keyboard accessible</constraint>
- <constraint>Critical functions should not depend solely on color or visual cues</constraint>
- <constraint>Views should support screen reader navigation</constraint>
- </rule>
-
- <!-- Consistency Validation -->
- <rule name="view-naming-consistency">
- <description>View naming should follow consistent patterns</description>
- <constraint>View names should end with 'View' suffix</constraint>
- <constraint>Related views should use consistent naming prefixes</constraint>
- <constraint>Window references should use descriptive role names</constraint>
- <constraint>Navigation action names should be verb-based and descriptive</constraint>
- </rule>
-
- </validation-rules>
|