view-validation.xml 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Example: view-validation.xml -->
  3. <validation-rules xmlns="ui-layout-definition">
  4. <!-- View Structure Validation -->
  5. <rule name="view-definition-required">
  6. <description>Views must be properly defined before being referenced</description>
  7. <constraint>All view references in windows and dependencies must correspond to defined views</constraint>
  8. <constraint>View names must be unique within the document and included files</constraint>
  9. </rule>
  10. <rule name="view-window-association">
  11. <description>Windows must be properly associated with views</description>
  12. <constraint>Every window should be referenced by at least one view</constraint>
  13. <constraint>Windows referenced in view window-ref elements must exist</constraint>
  14. <constraint>Window roles within a view must be unique</constraint>
  15. </rule>
  16. <rule name="view-inheritance-validation">
  17. <description>View inheritance must be valid and acyclic</description>
  18. <constraint>Views can only inherit from other defined views</constraint>
  19. <constraint>Inheritance chains must not contain cycles</constraint>
  20. <constraint>Inherited view types must be compatible (base views can be inherited by any type)</constraint>
  21. <constraint>View categories must be compatible in inheritance hierarchies</constraint>
  22. </rule>
  23. <!-- View Dependencies Validation -->
  24. <rule name="view-dependency-validation">
  25. <description>View dependencies must be valid and resolvable</description>
  26. <constraint>Referenced views in dependencies must be defined</constraint>
  27. <constraint>Dependency relationships must be appropriate for the view types</constraint>
  28. <constraint>Required dependencies must be satisfiable</constraint>
  29. <constraint>Circular dependencies between views are not allowed</constraint>
  30. </rule>
  31. <rule name="view-relationship-validation">
  32. <description>View relationships must be semantically correct</description>
  33. <constraint>Lookup relationships should reference utility or business-entity views</constraint>
  34. <constraint>Detail relationships should reference views that can operate in detail mode</constraint>
  35. <constraint>Reference relationships should not create tight coupling</constraint>
  36. <constraint>Primary relationships in composite views must be unique</constraint>
  37. </rule>
  38. <!-- Data Context Validation -->
  39. <rule name="data-context-consistency">
  40. <description>Data context properties must be consistently defined</description>
  41. <constraint>Shared-scope properties must have compatible types across views</constraint>
  42. <constraint>Property names within a view must be unique</constraint>
  43. <constraint>Global-scope properties should be defined in base views or modules</constraint>
  44. <constraint>Data context types must be valid and resolvable</constraint>
  45. </rule>
  46. <rule name="data-binding-validation">
  47. <description>View data context bindings must be valid</description>
  48. <constraint>Window data-context-binding must reference existing data context properties</constraint>
  49. <constraint>Binding scopes must be appropriate for the window role</constraint>
  50. <constraint>Navigation contexts must reference valid data context properties</constraint>
  51. </rule>
  52. <!-- Navigation Validation -->
  53. <rule name="navigation-action-validation">
  54. <description>Navigation actions must be valid and reachable</description>
  55. <constraint>Navigation targets must reference defined windows within the view</constraint>
  56. <constraint>Navigation contexts must reference valid data context properties</constraint>
  57. <constraint>Action names within a view must be unique</constraint>
  58. <constraint>Required navigation actions must be implemented</constraint>
  59. </rule>
  60. <!-- Behavior Validation -->
  61. <rule name="behavior-scope-validation">
  62. <description>Behavior scopes must be appropriate and consistent</description>
  63. <constraint>Global-scope behaviors should be defined in base views or modules</constraint>
  64. <constraint>View-scope behaviors must be unique within the view</constraint>
  65. <constraint>Inherited behaviors can be overridden with compatible scopes</constraint>
  66. </rule>
  67. <!-- Communication Validation -->
  68. <rule name="event-communication-validation">
  69. <description>Inter-view communication must be properly defined</description>
  70. <constraint>Subscribed events must reference valid source views</constraint>
  71. <constraint>Event handlers must be implemented in the subscribing view</constraint>
  72. <constraint>Published events should be consumed by at least one subscriber</constraint>
  73. <constraint>Event data types must be compatible between publishers and subscribers</constraint>
  74. </rule>
  75. <!-- Composite View Validation -->
  76. <rule name="composite-view-validation">
  77. <description>Composite views must be properly structured</description>
  78. <constraint>Composed views must be defined and accessible</constraint>
  79. <constraint>Layout slots must correspond to wireframe slot definitions</constraint>
  80. <constraint>Primary role must be assigned to exactly one composed view</constraint>
  81. <constraint>Coordination rules must reference valid views and events</constraint>
  82. </rule>
  83. <!-- Module View Validation -->
  84. <rule name="module-view-validation">
  85. <description>Module views must properly organize related functionality</description>
  86. <constraint>Module views must contain at least one view reference</constraint>
  87. <constraint>Referenced views in modules must be defined</constraint>
  88. <constraint>Module dependencies must be valid and resolvable</constraint>
  89. <constraint>Main navigation items must reference contained views</constraint>
  90. </rule>
  91. <!-- Workflow Validation -->
  92. <rule name="workflow-validation">
  93. <description>Process flow workflows must be valid and navigable</description>
  94. <constraint>Workflow steps must reference valid windows within the view</constraint>
  95. <constraint>Step transitions must form a connected graph</constraint>
  96. <constraint>Workflow must have at least one starting step (no previous)</constraint>
  97. <constraint>Circular workflows must have explicit exit conditions</constraint>
  98. </rule>
  99. <!-- Metadata Validation -->
  100. <rule name="metadata-validation">
  101. <description>View metadata must be valid for code generation</description>
  102. <constraint>Model class names must follow naming conventions</constraint>
  103. <constraint>View model class names should end with 'ViewModel'</constraint>
  104. <constraint>Controller class names should end with 'Controller'</constraint>
  105. <constraint>Permission strings must follow defined permission patterns</constraint>
  106. </rule>
  107. <!-- View Type Validation -->
  108. <rule name="view-type-validation">
  109. <description>View types must be used appropriately</description>
  110. <constraint>Business-entity views should have CRUD operations</constraint>
  111. <constraint>Process-flow views should define workflow steps</constraint>
  112. <constraint>Dashboard views should aggregate data from other views</constraint>
  113. <constraint>Utility views should be designed for reuse</constraint>
  114. <constraint>Wizard views should have sequential navigation</constraint>
  115. <constraint>Base views should be designed for inheritance</constraint>
  116. </rule>
  117. <!-- Performance and Scalability -->
  118. <rule name="view-performance-validation">
  119. <description>Views should be designed for optimal performance</description>
  120. <constraint>Dependency depth should not exceed 5 levels</constraint>
  121. <constraint>Composite views should not contain more than 10 composed views</constraint>
  122. <constraint>Data context properties should have appropriate scopes</constraint>
  123. <constraint>Event subscriptions should not create performance bottlenecks</constraint>
  124. </rule>
  125. <!-- Security Validation -->
  126. <rule name="view-security-validation">
  127. <description>Views must implement proper security constraints</description>
  128. <constraint>Views with write operations must specify appropriate permissions</constraint>
  129. <constraint>Sensitive operations must require explicit permissions</constraint>
  130. <constraint>Cross-view data access must respect security boundaries</constraint>
  131. <constraint>Administrative views must have admin category or permissions</constraint>
  132. </rule>
  133. <!-- Accessibility Validation -->
  134. <rule name="view-accessibility-validation">
  135. <description>Views should support accessibility requirements</description>
  136. <constraint>Modal dialogs should have proper escape mechanisms</constraint>
  137. <constraint>Navigation actions should be keyboard accessible</constraint>
  138. <constraint>Critical functions should not depend solely on color or visual cues</constraint>
  139. <constraint>Views should support screen reader navigation</constraint>
  140. </rule>
  141. <!-- Consistency Validation -->
  142. <rule name="view-naming-consistency">
  143. <description>View naming should follow consistent patterns</description>
  144. <constraint>View names should end with 'View' suffix</constraint>
  145. <constraint>Related views should use consistent naming prefixes</constraint>
  146. <constraint>Window references should use descriptive role names</constraint>
  147. <constraint>Navigation action names should be verb-based and descriptive</constraint>
  148. </rule>
  149. </validation-rules>