ui-layout-views.xsd 36 KB

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