ui-layout-views.xsd 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. targetNamespace="http://quadarax.com/ui-layout-views"
  4. xmlns:tns="http://quadarax.com/ui-layout-views"
  5. elementFormDefault="qualified"
  6. version="1.6">
  7. <!-- Root element for view include files -->
  8. <xs:element name="views" type="tns:ViewsIncludeFileType"/>
  9. <!-- Views include file structure -->
  10. <xs:complexType name="ViewsIncludeFileType">
  11. <xs:sequence>
  12. <xs:element name="view" type="tns:ViewType" minOccurs="0" maxOccurs="unbounded"/>
  13. </xs:sequence>
  14. <!-- ENHANCEMENT: Version tracking for view files -->
  15. <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
  16. <xs:attribute name="namespace" type="xs:string"/>
  17. <xs:attribute name="assembly" type="xs:string"/>
  18. </xs:complexType>
  19. <!-- View Type -->
  20. <xs:complexType name="ViewType">
  21. <xs:sequence>
  22. <xs:element name="description" type="xs:string" minOccurs="0"/>
  23. <xs:element name="metadata" type="tns:ViewMetadataType" minOccurs="0"/>
  24. <xs:element name="supported-view-modes" type="tns:SupportedViewModesType" minOccurs="0"/>
  25. <xs:element name="dependencies" type="tns:ViewDependenciesType" minOccurs="0"/>
  26. <xs:element name="data-context" type="tns:DataContextType" minOccurs="0"/>
  27. <xs:element name="windows" type="tns:ViewWindowsType" minOccurs="0"/>
  28. <xs:element name="navigation" type="tns:ViewNavigationType" minOccurs="0"/>
  29. <xs:element name="behaviors" type="tns:ViewBehaviorsType" minOccurs="0"/>
  30. <xs:element name="composed-views" type="tns:ComposedViewsType" minOccurs="0"/>
  31. <xs:element name="layout" type="tns:ViewLayoutType" minOccurs="0"/>
  32. <xs:element name="coordination" type="tns:CoordinationType" minOccurs="0"/>
  33. <xs:element name="communication" type="tns:CommunicationType" minOccurs="0"/>
  34. <xs:element name="workflow" type="tns:WorkflowType" minOccurs="0"/>
  35. <xs:element name="module-views" type="tns:ModuleViewsType" minOccurs="0"/>
  36. <xs:element name="module-dependencies" type="tns:ModuleDependenciesType" minOccurs="0"/>
  37. <xs:element name="main-navigation" type="tns:MainNavigationType" minOccurs="0"/>
  38. <!-- ENHANCEMENT: v1.3 new view features -->
  39. <xs:element name="state-management" type="tns:StateManagementType" minOccurs="0"/>
  40. <xs:element name="accessibility" type="tns:ViewAccessibilityType" minOccurs="0"/>
  41. <xs:element name="performance" type="tns:PerformanceType" minOccurs="0"/>
  42. <xs:element name="security" type="tns:SecurityType" minOccurs="0"/>
  43. <xs:element name="localization" type="tns:LocalizationType" minOccurs="0"/>
  44. <xs:element name="testing" type="tns:TestingType" minOccurs="0"/>
  45. </xs:sequence>
  46. <xs:attribute name="name" type="xs:string" use="required"/>
  47. <xs:attribute name="type" type="tns:ViewTypeEnum" use="required"/>
  48. <xs:attribute name="category" type="tns:ViewCategoryEnum" use="required"/>
  49. <xs:attribute name="inherits" type="xs:string"/>
  50. <!-- ENHANCEMENT: v1.3 view attributes -->
  51. <xs:attribute name="schema-version" type="xs:string" default="1.6"/>
  52. <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
  53. <xs:attribute name="singleton" type="xs:boolean" default="false"/>
  54. <xs:attribute name="lazy-loading" type="xs:boolean" default="false"/>
  55. <xs:attribute name="cacheable" type="xs:boolean" default="false"/>
  56. <xs:attribute name="priority" type="tns:PriorityEnum" default="normal"/>
  57. </xs:complexType>
  58. <!-- ENHANCEMENT: Platform Enumeration -->
  59. <xs:simpleType name="PlatformEnum">
  60. <xs:restriction base="xs:string">
  61. <xs:enumeration value="basic"/>
  62. <xs:enumeration value="winforms"/>
  63. <xs:enumeration value="avalonia"/>
  64. <xs:enumeration value="kde"/>
  65. <xs:enumeration value="web"/>
  66. <xs:enumeration value="mobile"/>
  67. <xs:enumeration value="mixed"/>
  68. </xs:restriction>
  69. </xs:simpleType>
  70. <!-- ENHANCEMENT: Priority Enumeration -->
  71. <xs:simpleType name="PriorityEnum">
  72. <xs:restriction base="xs:string">
  73. <xs:enumeration value="low"/>
  74. <xs:enumeration value="normal"/>
  75. <xs:enumeration value="high"/>
  76. <xs:enumeration value="critical"/>
  77. </xs:restriction>
  78. </xs:simpleType>
  79. <!-- View Type and Category Enums -->
  80. <xs:simpleType name="ViewTypeEnum">
  81. <xs:restriction base="xs:string">
  82. <xs:enumeration value="business-entity"/>
  83. <xs:enumeration value="process-flow"/>
  84. <xs:enumeration value="dashboard"/>
  85. <xs:enumeration value="utility"/>
  86. <xs:enumeration value="wizard"/>
  87. <xs:enumeration value="composite"/>
  88. <xs:enumeration value="module"/>
  89. <xs:enumeration value="base"/>
  90. <!-- ENHANCEMENT: v1.3 new view types -->
  91. <xs:enumeration value="ai-assisted"/>
  92. <xs:enumeration value="real-time"/>
  93. <xs:enumeration value="collaborative"/>
  94. <xs:enumeration value="analytics"/>
  95. </xs:restriction>
  96. </xs:simpleType>
  97. <xs:simpleType name="ViewCategoryEnum">
  98. <xs:restriction base="xs:string">
  99. <xs:enumeration value="core"/>
  100. <xs:enumeration value="admin"/>
  101. <xs:enumeration value="reporting"/>
  102. <xs:enumeration value="system"/>
  103. <xs:enumeration value="framework"/>
  104. <xs:enumeration value="business"/>
  105. <!-- ENHANCEMENT: v1.3 new categories -->
  106. <xs:enumeration value="analytics"/>
  107. <xs:enumeration value="collaboration"/>
  108. <xs:enumeration value="ai-enhanced"/>
  109. <xs:enumeration value="mobile-optimized"/>
  110. </xs:restriction>
  111. </xs:simpleType>
  112. <!-- ENHANCEMENT: State Management Type -->
  113. <xs:complexType name="StateManagementType">
  114. <xs:sequence>
  115. <xs:element name="state" type="tns:StateDefinitionType" maxOccurs="unbounded"/>
  116. <xs:element name="transition" type="tns:StateTransitionType" minOccurs="0" maxOccurs="unbounded"/>
  117. </xs:sequence>
  118. <xs:attribute name="pattern" type="tns:StatePatternEnum" default="simple"/>
  119. <xs:attribute name="persistence" type="tns:PersistenceEnum" default="session"/>
  120. </xs:complexType>
  121. <xs:complexType name="StateDefinitionType">
  122. <xs:attribute name="name" type="xs:string" use="required"/>
  123. <xs:attribute name="initial" type="xs:boolean" default="false"/>
  124. <xs:attribute name="final" type="xs:boolean" default="false"/>
  125. <xs:attribute name="description" type="xs:string"/>
  126. <xs:attribute name="data-snapshot" type="xs:string"/>
  127. </xs:complexType>
  128. <xs:complexType name="StateTransitionType">
  129. <xs:attribute name="from" type="xs:string" use="required"/>
  130. <xs:attribute name="to" type="xs:string" use="required"/>
  131. <xs:attribute name="trigger" type="xs:string" use="required"/>
  132. <xs:attribute name="condition" type="xs:string"/>
  133. <xs:attribute name="action" type="xs:string"/>
  134. </xs:complexType>
  135. <xs:simpleType name="StatePatternEnum">
  136. <xs:restriction base="xs:string">
  137. <xs:enumeration value="simple"/>
  138. <xs:enumeration value="hierarchical"/>
  139. <xs:enumeration value="concurrent"/>
  140. <xs:enumeration value="redux"/>
  141. <xs:enumeration value="mobx"/>
  142. </xs:restriction>
  143. </xs:simpleType>
  144. <xs:simpleType name="PersistenceEnum">
  145. <xs:restriction base="xs:string">
  146. <xs:enumeration value="none"/>
  147. <xs:enumeration value="session"/>
  148. <xs:enumeration value="local"/>
  149. <xs:enumeration value="remote"/>
  150. <xs:enumeration value="distributed"/>
  151. </xs:restriction>
  152. </xs:simpleType>
  153. <!-- ENHANCEMENT: View Accessibility Type -->
  154. <xs:complexType name="ViewAccessibilityType">
  155. <xs:sequence>
  156. <xs:element name="compliance" type="tns:AccessibilityComplianceType" maxOccurs="unbounded"/>
  157. <xs:element name="feature" type="tns:AccessibilityFeatureType" minOccurs="0" maxOccurs="unbounded"/>
  158. </xs:sequence>
  159. <xs:attribute name="level" type="tns:AccessibilityLevelEnum" default="aa"/>
  160. <xs:attribute name="tested" type="xs:boolean" default="false"/>
  161. </xs:complexType>
  162. <xs:complexType name="AccessibilityComplianceType">
  163. <xs:attribute name="standard" type="tns:AccessibilityStandardEnum" use="required"/>
  164. <xs:attribute name="level" type="tns:AccessibilityLevelEnum" use="required"/>
  165. <xs:attribute name="verified" type="xs:boolean" default="false"/>
  166. </xs:complexType>
  167. <xs:complexType name="AccessibilityFeatureType">
  168. <xs:attribute name="name" type="xs:string" use="required"/>
  169. <xs:attribute name="type" type="tns:AccessibilityFeatureEnum" use="required"/>
  170. <xs:attribute name="required" type="xs:boolean" default="false"/>
  171. <xs:attribute name="implementation" type="xs:string"/>
  172. </xs:complexType>
  173. <xs:simpleType name="AccessibilityStandardEnum">
  174. <xs:restriction base="xs:string">
  175. <xs:enumeration value="wcag"/>
  176. <xs:enumeration value="section-508"/>
  177. <xs:enumeration value="ada"/>
  178. <xs:enumeration value="en-301-549"/>
  179. </xs:restriction>
  180. </xs:simpleType>
  181. <xs:simpleType name="AccessibilityLevelEnum">
  182. <xs:restriction base="xs:string">
  183. <xs:enumeration value="a"/>
  184. <xs:enumeration value="aa"/>
  185. <xs:enumeration value="aaa"/>
  186. </xs:restriction>
  187. </xs:simpleType>
  188. <xs:simpleType name="AccessibilityFeatureEnum">
  189. <xs:restriction base="xs:string">
  190. <xs:enumeration value="screen-reader"/>
  191. <xs:enumeration value="keyboard-navigation"/>
  192. <xs:enumeration value="high-contrast"/>
  193. <xs:enumeration value="voice-control"/>
  194. <xs:enumeration value="eye-tracking"/>
  195. <xs:enumeration value="switch-control"/>
  196. <xs:enumeration value="magnification"/>
  197. </xs:restriction>
  198. </xs:simpleType>
  199. <!-- ENHANCEMENT: Performance Type -->
  200. <xs:complexType name="PerformanceType">
  201. <xs:sequence>
  202. <xs:element name="metric" type="tns:PerformanceMetricType" maxOccurs="unbounded"/>
  203. <xs:element name="optimization" type="tns:OptimizationType" minOccurs="0" maxOccurs="unbounded"/>
  204. </xs:sequence>
  205. <xs:attribute name="target-load-time" type="xs:int" default="2000"/>
  206. <xs:attribute name="memory-limit" type="xs:string"/>
  207. <xs:attribute name="cpu-threshold" type="xs:decimal"/>
  208. </xs:complexType>
  209. <xs:complexType name="PerformanceMetricType">
  210. <xs:attribute name="name" type="xs:string" use="required"/>
  211. <xs:attribute name="type" type="tns:MetricTypeEnum" use="required"/>
  212. <xs:attribute name="target" type="xs:string" use="required"/>
  213. <xs:attribute name="critical" type="xs:boolean" default="false"/>
  214. </xs:complexType>
  215. <xs:complexType name="OptimizationType">
  216. <xs:attribute name="technique" type="tns:OptimizationTechniqueEnum" use="required"/>
  217. <xs:attribute name="description" type="xs:string"/>
  218. <xs:attribute name="impact" type="tns:ImpactEnum" default="medium"/>
  219. </xs:complexType>
  220. <xs:simpleType name="MetricTypeEnum">
  221. <xs:restriction base="xs:string">
  222. <xs:enumeration value="load-time"/>
  223. <xs:enumeration value="memory-usage"/>
  224. <xs:enumeration value="cpu-usage"/>
  225. <xs:enumeration value="response-time"/>
  226. <xs:enumeration value="throughput"/>
  227. <xs:enumeration value="frame-rate"/>
  228. </xs:restriction>
  229. </xs:simpleType>
  230. <xs:simpleType name="OptimizationTechniqueEnum">
  231. <xs:restriction base="xs:string">
  232. <xs:enumeration value="lazy-loading"/>
  233. <xs:enumeration value="virtualization"/>
  234. <xs:enumeration value="caching"/>
  235. <xs:enumeration value="compression"/>
  236. <xs:enumeration value="bundling"/>
  237. <xs:enumeration value="code-splitting"/>
  238. <xs:enumeration value="preloading"/>
  239. </xs:restriction>
  240. </xs:simpleType>
  241. <xs:simpleType name="ImpactEnum">
  242. <xs:restriction base="xs:string">
  243. <xs:enumeration value="low"/>
  244. <xs:enumeration value="medium"/>
  245. <xs:enumeration value="high"/>
  246. <xs:enumeration value="critical"/>
  247. </xs:restriction>
  248. </xs:simpleType>
  249. <!-- ENHANCEMENT: Security Type -->
  250. <xs:complexType name="SecurityType">
  251. <xs:sequence>
  252. <xs:element name="permission" type="tns:PermissionType" maxOccurs="unbounded"/>
  253. <xs:element name="vulnerability-protection" type="tns:VulnerabilityProtectionType" minOccurs="0" maxOccurs="unbounded"/>
  254. <xs:element name="data-protection" type="tns:DataProtectionType" minOccurs="0"/>
  255. </xs:sequence>
  256. <xs:attribute name="level" type="tns:SecurityLevelEnum" default="standard"/>
  257. <xs:attribute name="audit-required" type="xs:boolean" default="false"/>
  258. </xs:complexType>
  259. <xs:complexType name="PermissionType">
  260. <xs:attribute name="name" type="xs:string" use="required"/>
  261. <xs:attribute name="type" type="tns:PermissionTypeEnum" use="required"/>
  262. <xs:attribute name="required" type="xs:boolean" default="true"/>
  263. <xs:attribute name="scope" type="tns:PermissionScopeEnum" default="view"/>
  264. </xs:complexType>
  265. <xs:complexType name="VulnerabilityProtectionType">
  266. <xs:attribute name="type" type="tns:VulnerabilityTypeEnum" use="required"/>
  267. <xs:attribute name="protection" type="xs:string" use="required"/>
  268. <xs:attribute name="severity" type="tns:SeverityEnum" default="medium"/>
  269. </xs:complexType>
  270. <xs:complexType name="DataProtectionType">
  271. <xs:attribute name="encryption" type="xs:boolean" default="false"/>
  272. <xs:attribute name="anonymization" type="xs:boolean" default="false"/>
  273. <xs:attribute name="gdpr-compliant" type="xs:boolean" default="false"/>
  274. <xs:attribute name="retention-policy" type="xs:string"/>
  275. </xs:complexType>
  276. <xs:simpleType name="SecurityLevelEnum">
  277. <xs:restriction base="xs:string">
  278. <xs:enumeration value="minimal"/>
  279. <xs:enumeration value="standard"/>
  280. <xs:enumeration value="high"/>
  281. <xs:enumeration value="maximum"/>
  282. </xs:restriction>
  283. </xs:simpleType>
  284. <xs:simpleType name="PermissionTypeEnum">
  285. <xs:restriction base="xs:string">
  286. <xs:enumeration value="read"/>
  287. <xs:enumeration value="write"/>
  288. <xs:enumeration value="delete"/>
  289. <xs:enumeration value="execute"/>
  290. <xs:enumeration value="admin"/>
  291. <xs:enumeration value="custom"/>
  292. </xs:restriction>
  293. </xs:simpleType>
  294. <xs:simpleType name="PermissionScopeEnum">
  295. <xs:restriction base="xs:string">
  296. <xs:enumeration value="view"/>
  297. <xs:enumeration value="window"/>
  298. <xs:enumeration value="control"/>
  299. <xs:enumeration value="data"/>
  300. <xs:enumeration value="global"/>
  301. </xs:restriction>
  302. </xs:simpleType>
  303. <xs:simpleType name="VulnerabilityTypeEnum">
  304. <xs:restriction base="xs:string">
  305. <xs:enumeration value="xss"/>
  306. <xs:enumeration value="injection"/>
  307. <xs:enumeration value="csrf"/>
  308. <xs:enumeration value="authentication"/>
  309. <xs:enumeration value="authorization"/>
  310. <xs:enumeration value="data-exposure"/>
  311. </xs:restriction>
  312. </xs:simpleType>
  313. <xs:simpleType name="SeverityEnum">
  314. <xs:restriction base="xs:string">
  315. <xs:enumeration value="low"/>
  316. <xs:enumeration value="medium"/>
  317. <xs:enumeration value="high"/>
  318. <xs:enumeration value="critical"/>
  319. </xs:restriction>
  320. </xs:simpleType>
  321. <!-- ENHANCEMENT: Localization Type -->
  322. <xs:complexType name="LocalizationType">
  323. <xs:sequence>
  324. <xs:element name="supported-culture" type="tns:SupportedCultureType" maxOccurs="unbounded"/>
  325. <xs:element name="resource-bundle" type="tns:ResourceBundleType" minOccurs="0" maxOccurs="unbounded"/>
  326. </xs:sequence>
  327. <xs:attribute name="default-culture" type="xs:string" default="en-US"/>
  328. <xs:attribute name="fallback-culture" type="xs:string" default="en"/>
  329. <xs:attribute name="rtl-support" type="xs:boolean" default="false"/>
  330. </xs:complexType>
  331. <xs:complexType name="SupportedCultureType">
  332. <xs:attribute name="code" type="xs:string" use="required"/>
  333. <xs:attribute name="name" type="xs:string" use="required"/>
  334. <xs:attribute name="completion" type="xs:decimal" default="100"/>
  335. <xs:attribute name="verified" type="xs:boolean" default="false"/>
  336. </xs:complexType>
  337. <xs:complexType name="ResourceBundleType">
  338. <xs:attribute name="name" type="xs:string" use="required"/>
  339. <xs:attribute name="path" type="xs:string" use="required"/>
  340. <xs:attribute name="type" type="tns:ResourceBundleTypeEnum" default="resx"/>
  341. </xs:complexType>
  342. <xs:simpleType name="ResourceBundleTypeEnum">
  343. <xs:restriction base="xs:string">
  344. <xs:enumeration value="resx"/>
  345. <xs:enumeration value="json"/>
  346. <xs:enumeration value="xml"/>
  347. <xs:enumeration value="gettext"/>
  348. </xs:restriction>
  349. </xs:simpleType>
  350. <!-- ENHANCEMENT: Testing Type -->
  351. <xs:complexType name="TestingType">
  352. <xs:sequence>
  353. <xs:element name="test-scenario" type="tns:TestScenarioType" maxOccurs="unbounded"/>
  354. <xs:element name="automation" type="tns:TestAutomationType" minOccurs="0"/>
  355. </xs:sequence>
  356. <xs:attribute name="coverage-target" type="xs:decimal" default="80"/>
  357. <xs:attribute name="strategy" type="tns:TestStrategyEnum" default="unit"/>
  358. </xs:complexType>
  359. <xs:complexType name="TestScenarioType">
  360. <xs:sequence>
  361. <xs:element name="step" type="tns:TestStepType" maxOccurs="unbounded"/>
  362. </xs:sequence>
  363. <xs:attribute name="name" type="xs:string" use="required"/>
  364. <xs:attribute name="type" type="tns:TestTypeEnum" use="required"/>
  365. <xs:attribute name="priority" type="tns:PriorityEnum" default="normal"/>
  366. <xs:attribute name="automated" type="xs:boolean" default="false"/>
  367. </xs:complexType>
  368. <xs:complexType name="TestStepType">
  369. <xs:attribute name="action" type="xs:string" use="required"/>
  370. <xs:attribute name="expected" type="xs:string" use="required"/>
  371. <xs:attribute name="data" type="xs:string"/>
  372. </xs:complexType>
  373. <xs:complexType name="TestAutomationType">
  374. <xs:attribute name="framework" type="tns:TestFrameworkEnum" use="required"/>
  375. <xs:attribute name="selector-strategy" type="tns:SelectorStrategyEnum" default="name"/>
  376. <xs:attribute name="page-object-model" type="xs:boolean" default="true"/>
  377. </xs:complexType>
  378. <xs:simpleType name="TestStrategyEnum">
  379. <xs:restriction base="xs:string">
  380. <xs:enumeration value="unit"/>
  381. <xs:enumeration value="integration"/>
  382. <xs:enumeration value="ui"/>
  383. <xs:enumeration value="e2e"/>
  384. <xs:enumeration value="performance"/>
  385. </xs:restriction>
  386. </xs:simpleType>
  387. <xs:simpleType name="TestTypeEnum">
  388. <xs:restriction base="xs:string">
  389. <xs:enumeration value="functional"/>
  390. <xs:enumeration value="usability"/>
  391. <xs:enumeration value="accessibility"/>
  392. <xs:enumeration value="performance"/>
  393. <xs:enumeration value="security"/>
  394. <xs:enumeration value="compatibility"/>
  395. </xs:restriction>
  396. </xs:simpleType>
  397. <xs:simpleType name="TestFrameworkEnum">
  398. <xs:restriction base="xs:string">
  399. <xs:enumeration value="selenium"/>
  400. <xs:enumeration value="playwright"/>
  401. <xs:enumeration value="cypress"/>
  402. <xs:enumeration value="testcafe"/>
  403. <xs:enumeration value="mstest"/>
  404. <xs:enumeration value="nunit"/>
  405. <xs:enumeration value="xunit"/>
  406. </xs:restriction>
  407. </xs:simpleType>
  408. <xs:simpleType name="SelectorStrategyEnum">
  409. <xs:restriction base="xs:string">
  410. <xs:enumeration value="name"/>
  411. <xs:enumeration value="id"/>
  412. <xs:enumeration value="css"/>
  413. <xs:enumeration value="xpath"/>
  414. <xs:enumeration value="accessibility"/>
  415. <xs:enumeration value="data-testid"/>
  416. </xs:restriction>
  417. </xs:simpleType>
  418. <!-- Supported View Modes -->
  419. <xs:complexType name="SupportedViewModesType">
  420. <xs:sequence>
  421. <xs:element name="mode" type="tns:ViewModeType" maxOccurs="unbounded"/>
  422. </xs:sequence>
  423. </xs:complexType>
  424. <xs:complexType name="ViewModeType">
  425. <xs:attribute name="name" type="tns:ViewModeNameEnum" use="required"/>
  426. <xs:attribute name="enabled" type="xs:boolean" use="required"/>
  427. <xs:attribute name="default" type="xs:boolean" default="false"/>
  428. <xs:attribute name="description" type="xs:string"/>
  429. </xs:complexType>
  430. <xs:simpleType name="ViewModeNameEnum">
  431. <xs:restriction base="xs:string">
  432. <xs:enumeration value="grid"/>
  433. <xs:enumeration value="gallery"/>
  434. <xs:enumeration value="tree"/>
  435. </xs:restriction>
  436. </xs:simpleType>
  437. <!-- View Metadata -->
  438. <xs:complexType name="ViewMetadataType">
  439. <xs:sequence>
  440. <xs:element name="model-class" type="xs:string" minOccurs="0"/>
  441. <xs:element name="view-model-class" type="xs:string" minOccurs="0"/>
  442. <xs:element name="controller-class" type="xs:string" minOccurs="0"/>
  443. <xs:element name="permissions" type="xs:string" minOccurs="0"/>
  444. <!-- ENHANCEMENT: v1.3 metadata additions -->
  445. <xs:element name="author" type="xs:string" minOccurs="0"/>
  446. <xs:element name="version" type="xs:string" minOccurs="0"/>
  447. <xs:element name="created-date" type="xs:date" minOccurs="0"/>
  448. <xs:element name="modified-date" type="xs:date" minOccurs="0"/>
  449. <xs:element name="documentation-url" type="xs:anyURI" minOccurs="0"/>
  450. <xs:element name="tags" type="tns:TagsType" minOccurs="0"/>
  451. </xs:sequence>
  452. </xs:complexType>
  453. <!-- ENHANCEMENT: Tags Type -->
  454. <xs:complexType name="TagsType">
  455. <xs:sequence>
  456. <xs:element name="tag" type="xs:string" maxOccurs="unbounded"/>
  457. </xs:sequence>
  458. </xs:complexType>
  459. <!-- View Dependencies -->
  460. <xs:complexType name="ViewDependenciesType">
  461. <xs:choice maxOccurs="unbounded">
  462. <xs:element name="view-ref" type="tns:ViewRefType"/>
  463. <xs:element name="shared-component" type="tns:SharedComponentType"/>
  464. <!-- ENHANCEMENT: v1.3 new dependency types -->
  465. <xs:element name="service-ref" type="tns:ServiceRefType"/>
  466. <xs:element name="library-ref" type="tns:LibraryRefType"/>
  467. </xs:choice>
  468. </xs:complexType>
  469. <xs:complexType name="ViewRefType">
  470. <xs:sequence>
  471. <xs:element name="interaction" type="tns:InteractionType" minOccurs="0"/>
  472. </xs:sequence>
  473. <xs:attribute name="name" type="xs:string" use="required"/>
  474. <xs:attribute name="relationship" type="tns:RelationshipEnum" use="required"/>
  475. <xs:attribute name="required" type="xs:boolean" default="false"/>
  476. <xs:attribute name="role" type="xs:string"/>
  477. <xs:attribute name="layout-slot" type="xs:string"/>
  478. <!-- ENHANCEMENT: v1.3 additions -->
  479. <xs:attribute name="lazy-load" type="xs:boolean" default="false"/>
  480. <xs:attribute name="cache-strategy" type="tns:CacheStrategyEnum" default="none"/>
  481. </xs:complexType>
  482. <xs:simpleType name="RelationshipEnum">
  483. <xs:restriction base="xs:string">
  484. <xs:enumeration value="lookup"/>
  485. <xs:enumeration value="detail"/>
  486. <xs:enumeration value="reference"/>
  487. <xs:enumeration value="primary"/>
  488. <!-- ENHANCEMENT: v1.3 new relationships -->
  489. <xs:enumeration value="collaboration"/>
  490. <xs:enumeration value="notification"/>
  491. <xs:enumeration value="workflow"/>
  492. </xs:restriction>
  493. </xs:simpleType>
  494. <xs:simpleType name="CacheStrategyEnum">
  495. <xs:restriction base="xs:string">
  496. <xs:enumeration value="none"/>
  497. <xs:enumeration value="memory"/>
  498. <xs:enumeration value="disk"/>
  499. <xs:enumeration value="distributed"/>
  500. <xs:enumeration value="adaptive"/>
  501. </xs:restriction>
  502. </xs:simpleType>
  503. <xs:complexType name="InteractionType">
  504. <xs:attribute name="type" type="xs:string" use="required"/>
  505. <xs:attribute name="returns" type="xs:string"/>
  506. <xs:attribute name="context" type="xs:string"/>
  507. <!-- ENHANCEMENT: v1.3 additions -->
  508. <xs:attribute name="async" type="xs:boolean" default="false"/>
  509. <xs:attribute name="timeout" type="xs:int"/>
  510. </xs:complexType>
  511. <xs:complexType name="SharedComponentType">
  512. <xs:attribute name="name" type="xs:string" use="required"/>
  513. <xs:attribute name="required" type="xs:boolean" default="false"/>
  514. <!-- ENHANCEMENT: v1.3 additions -->
  515. <xs:attribute name="version" type="xs:string"/>
  516. <xs:attribute name="source" type="xs:string"/>
  517. </xs:complexType>
  518. <!-- ENHANCEMENT: Service Reference Type -->
  519. <xs:complexType name="ServiceRefType">
  520. <xs:attribute name="name" type="xs:string" use="required"/>
  521. <xs:attribute name="interface" type="xs:string" use="required"/>
  522. <xs:attribute name="scope" type="tns:ServiceScopeEnum" default="transient"/>
  523. <xs:attribute name="required" type="xs:boolean" default="true"/>
  524. </xs:complexType>
  525. <xs:simpleType name="ServiceScopeEnum">
  526. <xs:restriction base="xs:string">
  527. <xs:enumeration value="singleton"/>
  528. <xs:enumeration value="transient"/>
  529. <xs:enumeration value="scoped"/>
  530. <xs:enumeration value="per-view"/>
  531. </xs:restriction>
  532. </xs:simpleType>
  533. <!-- ENHANCEMENT: Library Reference Type -->
  534. <xs:complexType name="LibraryRefType">
  535. <xs:attribute name="name" type="xs:string" use="required"/>
  536. <xs:attribute name="version" type="xs:string"/>
  537. <xs:attribute name="source" type="xs:string"/>
  538. <xs:attribute name="optional" type="xs:boolean" default="false"/>
  539. </xs:complexType>
  540. <!-- Data Context -->
  541. <xs:complexType name="DataContextType">
  542. <xs:sequence>
  543. <xs:element name="property" type="tns:DataPropertyType" maxOccurs="unbounded"/>
  544. </xs:sequence>
  545. </xs:complexType>
  546. <xs:complexType name="DataPropertyType">
  547. <xs:attribute name="name" type="xs:string" use="required"/>
  548. <xs:attribute name="type" type="xs:string" use="required"/>
  549. <xs:attribute name="scope" type="tns:DataScopeEnum" default="view"/>
  550. <!-- ENHANCEMENT: v1.3 additions -->
  551. <xs:attribute name="nullable" type="xs:boolean" default="true"/>
  552. <xs:attribute name="default-value" type="xs:string"/>
  553. <xs:attribute name="validation" type="xs:string"/>
  554. <xs:attribute name="observable" type="xs:boolean" default="true"/>
  555. <xs:attribute name="description" type="xs:string"/>
  556. </xs:complexType>
  557. <xs:simpleType name="DataScopeEnum">
  558. <xs:restriction base="xs:string">
  559. <xs:enumeration value="view"/>
  560. <xs:enumeration value="shared"/>
  561. <xs:enumeration value="global"/>
  562. <!-- ENHANCEMENT: v1.3 new scopes -->
  563. <xs:enumeration value="session"/>
  564. <xs:enumeration value="persistent"/>
  565. <xs:enumeration value="distributed"/>
  566. </xs:restriction>
  567. </xs:simpleType>
  568. <!-- View Windows -->
  569. <xs:complexType name="ViewWindowsType">
  570. <xs:sequence>
  571. <xs:element name="window-ref" type="tns:WindowRefType" maxOccurs="unbounded"/>
  572. </xs:sequence>
  573. </xs:complexType>
  574. <xs:complexType name="WindowRefType">
  575. <xs:attribute name="name" type="xs:string" use="required"/>
  576. <xs:attribute name="role" type="tns:WindowRoleEnum" use="required"/>
  577. <xs:attribute name="default" type="xs:boolean" default="false"/>
  578. <xs:attribute name="modal" type="xs:boolean" default="false"/>
  579. <!-- ENHANCEMENT: v1.3 additions -->
  580. <xs:attribute name="lazy-load" type="xs:boolean" default="false"/>
  581. <xs:attribute name="cache-lifetime" type="xs:int"/>
  582. <xs:attribute name="priority" type="tns:PriorityEnum" default="normal"/>
  583. </xs:complexType>
  584. <xs:simpleType name="WindowRoleEnum">
  585. <xs:restriction base="xs:string">
  586. <xs:enumeration value="main"/>
  587. <xs:enumeration value="editor"/>
  588. <xs:enumeration value="viewer"/>
  589. <xs:enumeration value="utility"/>
  590. <xs:enumeration value="catalog"/>
  591. <xs:enumeration value="step1"/>
  592. <xs:enumeration value="step2"/>
  593. <xs:enumeration value="step3"/>
  594. <!-- ENHANCEMENT: v1.3 new roles -->
  595. <xs:enumeration value="dashboard"/>
  596. <xs:enumeration value="report"/>
  597. <xs:enumeration value="preview"/>
  598. <xs:enumeration value="notification"/>
  599. </xs:restriction>
  600. </xs:simpleType>
  601. <!-- View Navigation -->
  602. <xs:complexType name="ViewNavigationType">
  603. <xs:sequence>
  604. <xs:element name="action" type="tns:NavigationActionType" maxOccurs="unbounded"/>
  605. </xs:sequence>
  606. </xs:complexType>
  607. <xs:complexType name="NavigationActionType">
  608. <xs:attribute name="name" type="xs:string" use="required"/>
  609. <xs:attribute name="target" type="xs:string" use="required"/>
  610. <xs:attribute name="context" type="xs:string"/>
  611. <!-- ENHANCEMENT: v1.3 additions -->
  612. <xs:attribute name="async" type="xs:boolean" default="false"/>
  613. <xs:attribute name="confirmation-required" type="xs:boolean" default="false"/>
  614. <xs:attribute name="permission" type="xs:string"/>
  615. </xs:complexType>
  616. <!-- View Behaviors -->
  617. <xs:complexType name="ViewBehaviorsType">
  618. <xs:sequence>
  619. <xs:element name="behavior" type="tns:ViewBehaviorType" maxOccurs="unbounded"/>
  620. </xs:sequence>
  621. </xs:complexType>
  622. <xs:complexType name="ViewBehaviorType">
  623. <xs:attribute name="name" type="xs:string" use="required"/>
  624. <xs:attribute name="scope" type="tns:BehaviorScopeEnum" default="view"/>
  625. <!-- ENHANCEMENT: v1.3 additions -->
  626. <xs:attribute name="async" type="xs:boolean" default="false"/>
  627. <xs:attribute name="debounce" type="xs:int"/>
  628. <xs:attribute name="throttle" type="xs:int"/>
  629. <xs:attribute name="cancellable" type="xs:boolean" default="false"/>
  630. <xs:attribute name="description" type="xs:string"/>
  631. </xs:complexType>
  632. <xs:simpleType name="BehaviorScopeEnum">
  633. <xs:restriction base="xs:string">
  634. <xs:enumeration value="view"/>
  635. <xs:enumeration value="global"/>
  636. <!-- ENHANCEMENT: v1.3 new scopes -->
  637. <xs:enumeration value="session"/>
  638. <xs:enumeration value="application"/>
  639. <xs:enumeration value="distributed"/>
  640. </xs:restriction>
  641. </xs:simpleType>
  642. <!-- Composed Views -->
  643. <xs:complexType name="ComposedViewsType">
  644. <xs:sequence>
  645. <xs:element name="view-ref" type="tns:ViewRefType" maxOccurs="unbounded"/>
  646. </xs:sequence>
  647. </xs:complexType>
  648. <!-- View Layout -->
  649. <xs:complexType name="ViewLayoutType">
  650. <xs:sequence>
  651. <xs:element name="slot" type="tns:ViewSlotType" maxOccurs="unbounded"/>
  652. </xs:sequence>
  653. <xs:attribute name="wireframe" type="xs:string" use="required"/>
  654. <!-- ENHANCEMENT: v1.3 additions -->
  655. <xs:attribute name="responsive" type="xs:boolean" default="false"/>
  656. <xs:attribute name="adaptive" type="xs:boolean" default="false"/>
  657. </xs:complexType>
  658. <xs:complexType name="ViewSlotType">
  659. <xs:attribute name="name" type="xs:string" use="required"/>
  660. <xs:attribute name="view" type="xs:string" use="required"/>
  661. <!-- ENHANCEMENT: v1.3 additions -->
  662. <xs:attribute name="lazy-load" type="xs:boolean" default="false"/>
  663. <xs:attribute name="conditional" type="xs:string"/>
  664. </xs:complexType>
  665. <!-- Coordination -->
  666. <xs:complexType name="CoordinationType">
  667. <xs:sequence>
  668. <xs:element name="rule" type="tns:CoordinationRuleType" maxOccurs="unbounded"/>
  669. </xs:sequence>
  670. </xs:complexType>
  671. <xs:complexType name="CoordinationRuleType">
  672. <xs:attribute name="when" type="xs:string" use="required"/>
  673. <xs:attribute name="then" type="xs:string" use="required"/>
  674. <!-- ENHANCEMENT: v1.3 additions -->
  675. <xs:attribute name="priority" type="tns:PriorityEnum" default="normal"/>
  676. <xs:attribute name="async" type="xs:boolean" default="false"/>
  677. </xs:complexType>
  678. <!-- Communication -->
  679. <xs:complexType name="CommunicationType">
  680. <xs:sequence>
  681. <xs:element name="publishes" type="tns:PublishesType" minOccurs="0"/>
  682. <xs:element name="subscribes" type="tns:SubscribesType" minOccurs="0"/>
  683. <!-- ENHANCEMENT: v1.3 new communication patterns -->
  684. <xs:element name="real-time" type="tns:RealTimeCommunicationType" minOccurs="0"/>
  685. </xs:sequence>
  686. </xs:complexType>
  687. <xs:complexType name="PublishesType">
  688. <xs:sequence>
  689. <xs:element name="event" type="tns:PublishedEventType" maxOccurs="unbounded"/>
  690. </xs:sequence>
  691. </xs:complexType>
  692. <xs:complexType name="SubscribesType">
  693. <xs:sequence>
  694. <xs:element name="event" type="tns:SubscribedEventType" maxOccurs="unbounded"/>
  695. </xs:sequence>
  696. </xs:complexType>
  697. <xs:complexType name="PublishedEventType">
  698. <xs:attribute name="name" type="xs:string" use="required"/>
  699. <xs:attribute name="data" type="xs:string"/>
  700. <!-- ENHANCEMENT: v1.3 additions -->
  701. <xs:attribute name="async" type="xs:boolean" default="false"/>
  702. <xs:attribute name="broadcast" type="xs:boolean" default="false"/>
  703. <xs:attribute name="persistent" type="xs:boolean" default="false"/>
  704. <xs:attribute name="description" type="xs:string"/>
  705. </xs:complexType>
  706. <xs:complexType name="SubscribedEventType">
  707. <xs:attribute name="name" type="xs:string" use="required"/>
  708. <xs:attribute name="source" type="xs:string" use="required"/>
  709. <xs:attribute name="handler" type="xs:string" use="required"/>
  710. <!-- ENHANCEMENT: v1.3 additions -->
  711. <xs:attribute name="async" type="xs:boolean" default="false"/>
  712. <xs:attribute name="debounce" type="xs:int"/>
  713. <xs:attribute name="filter" type="xs:string"/>
  714. </xs:complexType>
  715. <!-- ENHANCEMENT: Real-Time Communication Type -->
  716. <xs:complexType name="RealTimeCommunicationType">
  717. <xs:sequence>
  718. <xs:element name="connection" type="tns:RealTimeConnectionType" maxOccurs="unbounded"/>
  719. </xs:sequence>
  720. </xs:complexType>
  721. <xs:complexType name="RealTimeConnectionType">
  722. <xs:attribute name="name" type="xs:string" use="required"/>
  723. <xs:attribute name="protocol" type="tns:RealTimeProtocolEnum" use="required"/>
  724. <xs:attribute name="endpoint" type="xs:string"/>
  725. <xs:attribute name="auto-reconnect" type="xs:boolean" default="true"/>
  726. </xs:complexType>
  727. <xs:simpleType name="RealTimeProtocolEnum">
  728. <xs:restriction base="xs:string">
  729. <xs:enumeration value="websocket"/>
  730. <xs:enumeration value="signalr"/>
  731. <xs:enumeration value="socketio"/>
  732. <xs:enumeration value="grpc-stream"/>
  733. <xs:enumeration value="sse"/>
  734. </xs:restriction>
  735. </xs:simpleType>
  736. <!-- Workflow -->
  737. <xs:complexType name="WorkflowType">
  738. <xs:sequence>
  739. <xs:element name="step" type="tns:WorkflowStepType" maxOccurs="unbounded"/>
  740. </xs:sequence>
  741. <!-- ENHANCEMENT: v1.3 additions -->
  742. <xs:attribute name="type" type="tns:WorkflowTypeEnum" default="sequential"/>
  743. <xs:attribute name="persistent" type="xs:boolean" default="false"/>
  744. </xs:complexType>
  745. <xs:complexType name="WorkflowStepType">
  746. <xs:attribute name="name" type="xs:string" use="required"/>
  747. <xs:attribute name="window" type="xs:string" use="required"/>
  748. <xs:attribute name="next" type="xs:string"/>
  749. <xs:attribute name="previous" type="xs:string"/>
  750. <!-- ENHANCEMENT: v1.3 additions -->
  751. <xs:attribute name="condition" type="xs:string"/>
  752. <xs:attribute name="timeout" type="xs:int"/>
  753. <xs:attribute name="skippable" type="xs:boolean" default="false"/>
  754. </xs:complexType>
  755. <xs:simpleType name="WorkflowTypeEnum">
  756. <xs:restriction base="xs:string">
  757. <xs:enumeration value="sequential"/>
  758. <xs:enumeration value="parallel"/>
  759. <xs:enumeration value="conditional"/>
  760. <xs:enumeration value="state-machine"/>
  761. </xs:restriction>
  762. </xs:simpleType>
  763. <!-- Module Views -->
  764. <xs:complexType name="ModuleViewsType">
  765. <xs:sequence>
  766. <xs:element name="view-ref" type="tns:SimpleViewRefType" maxOccurs="unbounded"/>
  767. </xs:sequence>
  768. </xs:complexType>
  769. <xs:complexType name="SimpleViewRefType">
  770. <xs:attribute name="name" type="xs:string" use="required"/>
  771. <!-- ENHANCEMENT: v1.3 additions -->
  772. <xs:attribute name="load-priority" type="tns:PriorityEnum" default="normal"/>
  773. <xs:attribute name="optional" type="xs:boolean" default="false"/>
  774. </xs:complexType>
  775. <!-- Module Dependencies -->
  776. <xs:complexType name="ModuleDependenciesType">
  777. <xs:sequence>
  778. <xs:element name="module-ref" type="tns:ModuleRefType" maxOccurs="unbounded"/>
  779. </xs:sequence>
  780. </xs:complexType>
  781. <xs:complexType name="ModuleRefType">
  782. <xs:attribute name="name" type="xs:string" use="required"/>
  783. <!-- ENHANCEMENT: v1.3 additions -->
  784. <xs:attribute name="version" type="xs:string"/>
  785. <xs:attribute name="optional" type="xs:boolean" default="false"/>
  786. <xs:attribute name="lazy-load" type="xs:boolean" default="false"/>
  787. </xs:complexType>
  788. <!-- Main Navigation -->
  789. <xs:complexType name="MainNavigationType">
  790. <xs:sequence>
  791. <xs:element name="nav-item" type="tns:NavItemType" maxOccurs="unbounded"/>
  792. </xs:sequence>
  793. <!-- ENHANCEMENT: v1.3 additions -->
  794. <xs:attribute name="style" type="tns:NavigationStyleEnum" default="hierarchical"/>
  795. <xs:attribute name="responsive" type="xs:boolean" default="true"/>
  796. </xs:complexType>
  797. <xs:complexType name="NavItemType">
  798. <xs:attribute name="text" type="xs:string" use="required"/>
  799. <xs:attribute name="view" type="xs:string" use="required"/>
  800. <xs:attribute name="action" type="xs:string" use="required"/>
  801. <!-- ENHANCEMENT: v1.3 additions -->
  802. <xs:attribute name="icon" type="xs:string"/>
  803. <xs:attribute name="badge" type="xs:string"/>
  804. <xs:attribute name="permission" type="xs:string"/>
  805. <xs:attribute name="order" type="xs:int" default="0"/>
  806. </xs:complexType>
  807. <xs:simpleType name="NavigationStyleEnum">
  808. <xs:restriction base="xs:string">
  809. <xs:enumeration value="hierarchical"/>
  810. <xs:enumeration value="flat"/>
  811. <xs:enumeration value="breadcrumb"/>
  812. <xs:enumeration value="tab"/>
  813. <xs:enumeration value="sidebar"/>
  814. <xs:enumeration value="drawer"/>
  815. </xs:restriction>
  816. </xs:simpleType>
  817. </xs:schema>