| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://quadarax.com/ui-layout-views"
- xmlns:tns="http://quadarax.com/ui-layout-views"
- elementFormDefault="qualified"
- version="1.5">
- <!-- Root element for view include files -->
- <xs:element name="views" type="tns:ViewsIncludeFileType"/>
- <!-- Views include file structure -->
- <xs:complexType name="ViewsIncludeFileType">
- <xs:sequence>
- <xs:element name="view" type="tns:ViewType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <!-- ENHANCEMENT: Version tracking for view files -->
- <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
- <xs:attribute name="namespace" type="xs:string"/>
- <xs:attribute name="assembly" type="xs:string"/>
- </xs:complexType>
- <!-- View Type -->
- <xs:complexType name="ViewType">
- <xs:sequence>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <xs:element name="metadata" type="tns:ViewMetadataType" minOccurs="0"/>
- <xs:element name="dependencies" type="tns:ViewDependenciesType" minOccurs="0"/>
- <xs:element name="data-context" type="tns:DataContextType" minOccurs="0"/>
- <xs:element name="windows" type="tns:ViewWindowsType" minOccurs="0"/>
- <xs:element name="navigation" type="tns:ViewNavigationType" minOccurs="0"/>
- <xs:element name="behaviors" type="tns:ViewBehaviorsType" minOccurs="0"/>
- <xs:element name="composed-views" type="tns:ComposedViewsType" minOccurs="0"/>
- <xs:element name="layout" type="tns:ViewLayoutType" minOccurs="0"/>
- <xs:element name="coordination" type="tns:CoordinationType" minOccurs="0"/>
- <xs:element name="communication" type="tns:CommunicationType" minOccurs="0"/>
- <xs:element name="workflow" type="tns:WorkflowType" minOccurs="0"/>
- <xs:element name="module-views" type="tns:ModuleViewsType" minOccurs="0"/>
- <xs:element name="module-dependencies" type="tns:ModuleDependenciesType" minOccurs="0"/>
- <xs:element name="main-navigation" type="tns:MainNavigationType" minOccurs="0"/>
- <!-- ENHANCEMENT: v1.3 new view features -->
- <xs:element name="state-management" type="tns:StateManagementType" minOccurs="0"/>
- <xs:element name="accessibility" type="tns:ViewAccessibilityType" minOccurs="0"/>
- <xs:element name="performance" type="tns:PerformanceType" minOccurs="0"/>
- <xs:element name="security" type="tns:SecurityType" minOccurs="0"/>
- <xs:element name="localization" type="tns:LocalizationType" minOccurs="0"/>
- <xs:element name="testing" type="tns:TestingType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:ViewTypeEnum" use="required"/>
- <xs:attribute name="category" type="tns:ViewCategoryEnum" use="required"/>
- <xs:attribute name="inherits" type="xs:string"/>
- <!-- ENHANCEMENT: v1.3 view attributes -->
- <xs:attribute name="schema-version" type="xs:string" default="1.5"/>
- <xs:attribute name="platform" type="tns:PlatformEnum" default="basic"/>
- <xs:attribute name="singleton" type="xs:boolean" default="false"/>
- <xs:attribute name="lazy-loading" type="xs:boolean" default="false"/>
- <xs:attribute name="cacheable" type="xs:boolean" default="false"/>
- <xs:attribute name="priority" type="tns:PriorityEnum" default="normal"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Platform Enumeration -->
- <xs:simpleType name="PlatformEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="basic"/>
- <xs:enumeration value="winforms"/>
- <xs:enumeration value="avalonia"/>
- <xs:enumeration value="kde"/>
- <xs:enumeration value="web"/>
- <xs:enumeration value="mobile"/>
- <xs:enumeration value="mixed"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Priority Enumeration -->
- <xs:simpleType name="PriorityEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="low"/>
- <xs:enumeration value="normal"/>
- <xs:enumeration value="high"/>
- <xs:enumeration value="critical"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- View Type and Category Enums -->
- <xs:simpleType name="ViewTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="business-entity"/>
- <xs:enumeration value="process-flow"/>
- <xs:enumeration value="dashboard"/>
- <xs:enumeration value="utility"/>
- <xs:enumeration value="wizard"/>
- <xs:enumeration value="composite"/>
- <xs:enumeration value="module"/>
- <xs:enumeration value="base"/>
- <!-- ENHANCEMENT: v1.3 new view types -->
- <xs:enumeration value="ai-assisted"/>
- <xs:enumeration value="real-time"/>
- <xs:enumeration value="collaborative"/>
- <xs:enumeration value="analytics"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ViewCategoryEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="core"/>
- <xs:enumeration value="admin"/>
- <xs:enumeration value="reporting"/>
- <xs:enumeration value="system"/>
- <xs:enumeration value="framework"/>
- <xs:enumeration value="business"/>
- <!-- ENHANCEMENT: v1.3 new categories -->
- <xs:enumeration value="analytics"/>
- <xs:enumeration value="collaboration"/>
- <xs:enumeration value="ai-enhanced"/>
- <xs:enumeration value="mobile-optimized"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: State Management Type -->
- <xs:complexType name="StateManagementType">
- <xs:sequence>
- <xs:element name="state" type="tns:StateDefinitionType" maxOccurs="unbounded"/>
- <xs:element name="transition" type="tns:StateTransitionType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="pattern" type="tns:StatePatternEnum" default="simple"/>
- <xs:attribute name="persistence" type="tns:PersistenceEnum" default="session"/>
- </xs:complexType>
- <xs:complexType name="StateDefinitionType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="initial" type="xs:boolean" default="false"/>
- <xs:attribute name="final" type="xs:boolean" default="false"/>
- <xs:attribute name="description" type="xs:string"/>
- <xs:attribute name="data-snapshot" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="StateTransitionType">
- <xs:attribute name="from" type="xs:string" use="required"/>
- <xs:attribute name="to" type="xs:string" use="required"/>
- <xs:attribute name="trigger" type="xs:string" use="required"/>
- <xs:attribute name="condition" type="xs:string"/>
- <xs:attribute name="action" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="StatePatternEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="simple"/>
- <xs:enumeration value="hierarchical"/>
- <xs:enumeration value="concurrent"/>
- <xs:enumeration value="redux"/>
- <xs:enumeration value="mobx"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="PersistenceEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="none"/>
- <xs:enumeration value="session"/>
- <xs:enumeration value="local"/>
- <xs:enumeration value="remote"/>
- <xs:enumeration value="distributed"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: View Accessibility Type -->
- <xs:complexType name="ViewAccessibilityType">
- <xs:sequence>
- <xs:element name="compliance" type="tns:AccessibilityComplianceType" maxOccurs="unbounded"/>
- <xs:element name="feature" type="tns:AccessibilityFeatureType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="level" type="tns:AccessibilityLevelEnum" default="aa"/>
- <xs:attribute name="tested" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="AccessibilityComplianceType">
- <xs:attribute name="standard" type="tns:AccessibilityStandardEnum" use="required"/>
- <xs:attribute name="level" type="tns:AccessibilityLevelEnum" use="required"/>
- <xs:attribute name="verified" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="AccessibilityFeatureType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:AccessibilityFeatureEnum" use="required"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <xs:attribute name="implementation" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="AccessibilityStandardEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="wcag"/>
- <xs:enumeration value="section-508"/>
- <xs:enumeration value="ada"/>
- <xs:enumeration value="en-301-549"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="AccessibilityLevelEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="a"/>
- <xs:enumeration value="aa"/>
- <xs:enumeration value="aaa"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="AccessibilityFeatureEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="screen-reader"/>
- <xs:enumeration value="keyboard-navigation"/>
- <xs:enumeration value="high-contrast"/>
- <xs:enumeration value="voice-control"/>
- <xs:enumeration value="eye-tracking"/>
- <xs:enumeration value="switch-control"/>
- <xs:enumeration value="magnification"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Performance Type -->
- <xs:complexType name="PerformanceType">
- <xs:sequence>
- <xs:element name="metric" type="tns:PerformanceMetricType" maxOccurs="unbounded"/>
- <xs:element name="optimization" type="tns:OptimizationType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="target-load-time" type="xs:int" default="2000"/>
- <xs:attribute name="memory-limit" type="xs:string"/>
- <xs:attribute name="cpu-threshold" type="xs:decimal"/>
- </xs:complexType>
- <xs:complexType name="PerformanceMetricType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:MetricTypeEnum" use="required"/>
- <xs:attribute name="target" type="xs:string" use="required"/>
- <xs:attribute name="critical" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="OptimizationType">
- <xs:attribute name="technique" type="tns:OptimizationTechniqueEnum" use="required"/>
- <xs:attribute name="description" type="xs:string"/>
- <xs:attribute name="impact" type="tns:ImpactEnum" default="medium"/>
- </xs:complexType>
- <xs:simpleType name="MetricTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="load-time"/>
- <xs:enumeration value="memory-usage"/>
- <xs:enumeration value="cpu-usage"/>
- <xs:enumeration value="response-time"/>
- <xs:enumeration value="throughput"/>
- <xs:enumeration value="frame-rate"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="OptimizationTechniqueEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="lazy-loading"/>
- <xs:enumeration value="virtualization"/>
- <xs:enumeration value="caching"/>
- <xs:enumeration value="compression"/>
- <xs:enumeration value="bundling"/>
- <xs:enumeration value="code-splitting"/>
- <xs:enumeration value="preloading"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ImpactEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="low"/>
- <xs:enumeration value="medium"/>
- <xs:enumeration value="high"/>
- <xs:enumeration value="critical"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Security Type -->
- <xs:complexType name="SecurityType">
- <xs:sequence>
- <xs:element name="permission" type="tns:PermissionType" maxOccurs="unbounded"/>
- <xs:element name="vulnerability-protection" type="tns:VulnerabilityProtectionType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="data-protection" type="tns:DataProtectionType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="level" type="tns:SecurityLevelEnum" default="standard"/>
- <xs:attribute name="audit-required" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="PermissionType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:PermissionTypeEnum" use="required"/>
- <xs:attribute name="required" type="xs:boolean" default="true"/>
- <xs:attribute name="scope" type="tns:PermissionScopeEnum" default="view"/>
- </xs:complexType>
- <xs:complexType name="VulnerabilityProtectionType">
- <xs:attribute name="type" type="tns:VulnerabilityTypeEnum" use="required"/>
- <xs:attribute name="protection" type="xs:string" use="required"/>
- <xs:attribute name="severity" type="tns:SeverityEnum" default="medium"/>
- </xs:complexType>
- <xs:complexType name="DataProtectionType">
- <xs:attribute name="encryption" type="xs:boolean" default="false"/>
- <xs:attribute name="anonymization" type="xs:boolean" default="false"/>
- <xs:attribute name="gdpr-compliant" type="xs:boolean" default="false"/>
- <xs:attribute name="retention-policy" type="xs:string"/>
- </xs:complexType>
- <xs:simpleType name="SecurityLevelEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="minimal"/>
- <xs:enumeration value="standard"/>
- <xs:enumeration value="high"/>
- <xs:enumeration value="maximum"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="PermissionTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="read"/>
- <xs:enumeration value="write"/>
- <xs:enumeration value="delete"/>
- <xs:enumeration value="execute"/>
- <xs:enumeration value="admin"/>
- <xs:enumeration value="custom"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="PermissionScopeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="view"/>
- <xs:enumeration value="window"/>
- <xs:enumeration value="control"/>
- <xs:enumeration value="data"/>
- <xs:enumeration value="global"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="VulnerabilityTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="xss"/>
- <xs:enumeration value="injection"/>
- <xs:enumeration value="csrf"/>
- <xs:enumeration value="authentication"/>
- <xs:enumeration value="authorization"/>
- <xs:enumeration value="data-exposure"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="SeverityEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="low"/>
- <xs:enumeration value="medium"/>
- <xs:enumeration value="high"/>
- <xs:enumeration value="critical"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Localization Type -->
- <xs:complexType name="LocalizationType">
- <xs:sequence>
- <xs:element name="supported-culture" type="tns:SupportedCultureType" maxOccurs="unbounded"/>
- <xs:element name="resource-bundle" type="tns:ResourceBundleType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="default-culture" type="xs:string" default="en-US"/>
- <xs:attribute name="fallback-culture" type="xs:string" default="en"/>
- <xs:attribute name="rtl-support" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="SupportedCultureType">
- <xs:attribute name="code" type="xs:string" use="required"/>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="completion" type="xs:decimal" default="100"/>
- <xs:attribute name="verified" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="ResourceBundleType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="path" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:ResourceBundleTypeEnum" default="resx"/>
- </xs:complexType>
- <xs:simpleType name="ResourceBundleTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="resx"/>
- <xs:enumeration value="json"/>
- <xs:enumeration value="xml"/>
- <xs:enumeration value="gettext"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Testing Type -->
- <xs:complexType name="TestingType">
- <xs:sequence>
- <xs:element name="test-scenario" type="tns:TestScenarioType" maxOccurs="unbounded"/>
- <xs:element name="automation" type="tns:TestAutomationType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="coverage-target" type="xs:decimal" default="80"/>
- <xs:attribute name="strategy" type="tns:TestStrategyEnum" default="unit"/>
- </xs:complexType>
- <xs:complexType name="TestScenarioType">
- <xs:sequence>
- <xs:element name="step" type="tns:TestStepType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="tns:TestTypeEnum" use="required"/>
- <xs:attribute name="priority" type="tns:PriorityEnum" default="normal"/>
- <xs:attribute name="automated" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="TestStepType">
- <xs:attribute name="action" type="xs:string" use="required"/>
- <xs:attribute name="expected" type="xs:string" use="required"/>
- <xs:attribute name="data" type="xs:string"/>
- </xs:complexType>
- <xs:complexType name="TestAutomationType">
- <xs:attribute name="framework" type="tns:TestFrameworkEnum" use="required"/>
- <xs:attribute name="selector-strategy" type="tns:SelectorStrategyEnum" default="name"/>
- <xs:attribute name="page-object-model" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:simpleType name="TestStrategyEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="unit"/>
- <xs:enumeration value="integration"/>
- <xs:enumeration value="ui"/>
- <xs:enumeration value="e2e"/>
- <xs:enumeration value="performance"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="TestTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="functional"/>
- <xs:enumeration value="usability"/>
- <xs:enumeration value="accessibility"/>
- <xs:enumeration value="performance"/>
- <xs:enumeration value="security"/>
- <xs:enumeration value="compatibility"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="TestFrameworkEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="selenium"/>
- <xs:enumeration value="playwright"/>
- <xs:enumeration value="cypress"/>
- <xs:enumeration value="testcafe"/>
- <xs:enumeration value="mstest"/>
- <xs:enumeration value="nunit"/>
- <xs:enumeration value="xunit"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="SelectorStrategyEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="name"/>
- <xs:enumeration value="id"/>
- <xs:enumeration value="css"/>
- <xs:enumeration value="xpath"/>
- <xs:enumeration value="accessibility"/>
- <xs:enumeration value="data-testid"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- View Metadata -->
- <xs:complexType name="ViewMetadataType">
- <xs:sequence>
- <xs:element name="model-class" type="xs:string" minOccurs="0"/>
- <xs:element name="view-model-class" type="xs:string" minOccurs="0"/>
- <xs:element name="controller-class" type="xs:string" minOccurs="0"/>
- <xs:element name="permissions" type="xs:string" minOccurs="0"/>
- <!-- ENHANCEMENT: v1.3 metadata additions -->
- <xs:element name="author" type="xs:string" minOccurs="0"/>
- <xs:element name="version" type="xs:string" minOccurs="0"/>
- <xs:element name="created-date" type="xs:date" minOccurs="0"/>
- <xs:element name="modified-date" type="xs:date" minOccurs="0"/>
- <xs:element name="documentation-url" type="xs:anyURI" minOccurs="0"/>
- <xs:element name="tags" type="tns:TagsType" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <!-- ENHANCEMENT: Tags Type -->
- <xs:complexType name="TagsType">
- <xs:sequence>
- <xs:element name="tag" type="xs:string" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- View Dependencies -->
- <xs:complexType name="ViewDependenciesType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="view-ref" type="tns:ViewRefType"/>
- <xs:element name="shared-component" type="tns:SharedComponentType"/>
- <!-- ENHANCEMENT: v1.3 new dependency types -->
- <xs:element name="service-ref" type="tns:ServiceRefType"/>
- <xs:element name="library-ref" type="tns:LibraryRefType"/>
- </xs:choice>
- </xs:complexType>
- <xs:complexType name="ViewRefType">
- <xs:sequence>
- <xs:element name="interaction" type="tns:InteractionType" minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="relationship" type="tns:RelationshipEnum" use="required"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <xs:attribute name="role" type="xs:string"/>
- <xs:attribute name="layout-slot" type="xs:string"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="lazy-load" type="xs:boolean" default="false"/>
- <xs:attribute name="cache-strategy" type="tns:CacheStrategyEnum" default="none"/>
- </xs:complexType>
- <xs:simpleType name="RelationshipEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="lookup"/>
- <xs:enumeration value="detail"/>
- <xs:enumeration value="reference"/>
- <xs:enumeration value="primary"/>
- <!-- ENHANCEMENT: v1.3 new relationships -->
- <xs:enumeration value="collaboration"/>
- <xs:enumeration value="notification"/>
- <xs:enumeration value="workflow"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="CacheStrategyEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="none"/>
- <xs:enumeration value="memory"/>
- <xs:enumeration value="disk"/>
- <xs:enumeration value="distributed"/>
- <xs:enumeration value="adaptive"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="InteractionType">
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="returns" type="xs:string"/>
- <xs:attribute name="context" type="xs:string"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="async" type="xs:boolean" default="false"/>
- <xs:attribute name="timeout" type="xs:int"/>
- </xs:complexType>
- <xs:complexType name="SharedComponentType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="required" type="xs:boolean" default="false"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="version" type="xs:string"/>
- <xs:attribute name="source" type="xs:string"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Service Reference Type -->
- <xs:complexType name="ServiceRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="interface" type="xs:string" use="required"/>
- <xs:attribute name="scope" type="tns:ServiceScopeEnum" default="transient"/>
- <xs:attribute name="required" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:simpleType name="ServiceScopeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="singleton"/>
- <xs:enumeration value="transient"/>
- <xs:enumeration value="scoped"/>
- <xs:enumeration value="per-view"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ENHANCEMENT: Library Reference Type -->
- <xs:complexType name="LibraryRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="version" type="xs:string"/>
- <xs:attribute name="source" type="xs:string"/>
- <xs:attribute name="optional" type="xs:boolean" default="false"/>
- </xs:complexType>
- <!-- Data Context -->
- <xs:complexType name="DataContextType">
- <xs:sequence>
- <xs:element name="property" type="tns:DataPropertyType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="DataPropertyType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="scope" type="tns:DataScopeEnum" default="view"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="nullable" type="xs:boolean" default="true"/>
- <xs:attribute name="default-value" type="xs:string"/>
- <xs:attribute name="validation" type="xs:string"/>
- <xs:attribute name="observable" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:simpleType name="DataScopeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="view"/>
- <xs:enumeration value="shared"/>
- <xs:enumeration value="global"/>
- <!-- ENHANCEMENT: v1.3 new scopes -->
- <xs:enumeration value="session"/>
- <xs:enumeration value="persistent"/>
- <xs:enumeration value="distributed"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- View Windows -->
- <xs:complexType name="ViewWindowsType">
- <xs:sequence>
- <xs:element name="window-ref" type="tns:WindowRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="WindowRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="role" type="tns:WindowRoleEnum" use="required"/>
- <xs:attribute name="default" type="xs:boolean" default="false"/>
- <xs:attribute name="modal" type="xs:boolean" default="false"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="lazy-load" type="xs:boolean" default="false"/>
- <xs:attribute name="cache-lifetime" type="xs:int"/>
- <xs:attribute name="priority" type="tns:PriorityEnum" default="normal"/>
- </xs:complexType>
- <xs:simpleType name="WindowRoleEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="main"/>
- <xs:enumeration value="editor"/>
- <xs:enumeration value="viewer"/>
- <xs:enumeration value="utility"/>
- <xs:enumeration value="catalog"/>
- <xs:enumeration value="step1"/>
- <xs:enumeration value="step2"/>
- <xs:enumeration value="step3"/>
- <!-- ENHANCEMENT: v1.3 new roles -->
- <xs:enumeration value="dashboard"/>
- <xs:enumeration value="report"/>
- <xs:enumeration value="preview"/>
- <xs:enumeration value="notification"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- View Navigation -->
- <xs:complexType name="ViewNavigationType">
- <xs:sequence>
- <xs:element name="action" type="tns:NavigationActionType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="NavigationActionType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="target" type="xs:string" use="required"/>
- <xs:attribute name="context" type="xs:string"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="async" type="xs:boolean" default="false"/>
- <xs:attribute name="confirmation-required" type="xs:boolean" default="false"/>
- <xs:attribute name="permission" type="xs:string"/>
- </xs:complexType>
- <!-- View Behaviors -->
- <xs:complexType name="ViewBehaviorsType">
- <xs:sequence>
- <xs:element name="behavior" type="tns:ViewBehaviorType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ViewBehaviorType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="scope" type="tns:BehaviorScopeEnum" default="view"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="async" type="xs:boolean" default="false"/>
- <xs:attribute name="debounce" type="xs:int"/>
- <xs:attribute name="throttle" type="xs:int"/>
- <xs:attribute name="cancellable" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:simpleType name="BehaviorScopeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="view"/>
- <xs:enumeration value="global"/>
- <!-- ENHANCEMENT: v1.3 new scopes -->
- <xs:enumeration value="session"/>
- <xs:enumeration value="application"/>
- <xs:enumeration value="distributed"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Composed Views -->
- <xs:complexType name="ComposedViewsType">
- <xs:sequence>
- <xs:element name="view-ref" type="tns:ViewRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- View Layout -->
- <xs:complexType name="ViewLayoutType">
- <xs:sequence>
- <xs:element name="slot" type="tns:ViewSlotType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="wireframe" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="responsive" type="xs:boolean" default="false"/>
- <xs:attribute name="adaptive" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="ViewSlotType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="view" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="lazy-load" type="xs:boolean" default="false"/>
- <xs:attribute name="conditional" type="xs:string"/>
- </xs:complexType>
- <!-- Coordination -->
- <xs:complexType name="CoordinationType">
- <xs:sequence>
- <xs:element name="rule" type="tns:CoordinationRuleType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="CoordinationRuleType">
- <xs:attribute name="when" type="xs:string" use="required"/>
- <xs:attribute name="then" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="priority" type="tns:PriorityEnum" default="normal"/>
- <xs:attribute name="async" type="xs:boolean" default="false"/>
- </xs:complexType>
- <!-- Communication -->
- <xs:complexType name="CommunicationType">
- <xs:sequence>
- <xs:element name="publishes" type="tns:PublishesType" minOccurs="0"/>
- <xs:element name="subscribes" type="tns:SubscribesType" minOccurs="0"/>
- <!-- ENHANCEMENT: v1.3 new communication patterns -->
- <xs:element name="real-time" type="tns:RealTimeCommunicationType" minOccurs="0"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PublishesType">
- <xs:sequence>
- <xs:element name="event" type="tns:PublishedEventType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="SubscribesType">
- <xs:sequence>
- <xs:element name="event" type="tns:SubscribedEventType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="PublishedEventType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="data" type="xs:string"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="async" type="xs:boolean" default="false"/>
- <xs:attribute name="broadcast" type="xs:boolean" default="false"/>
- <xs:attribute name="persistent" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="SubscribedEventType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="source" type="xs:string" use="required"/>
- <xs:attribute name="handler" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="async" type="xs:boolean" default="false"/>
- <xs:attribute name="debounce" type="xs:int"/>
- <xs:attribute name="filter" type="xs:string"/>
- </xs:complexType>
- <!-- ENHANCEMENT: Real-Time Communication Type -->
- <xs:complexType name="RealTimeCommunicationType">
- <xs:sequence>
- <xs:element name="connection" type="tns:RealTimeConnectionType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="RealTimeConnectionType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="protocol" type="tns:RealTimeProtocolEnum" use="required"/>
- <xs:attribute name="endpoint" type="xs:string"/>
- <xs:attribute name="auto-reconnect" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:simpleType name="RealTimeProtocolEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="websocket"/>
- <xs:enumeration value="signalr"/>
- <xs:enumeration value="socketio"/>
- <xs:enumeration value="grpc-stream"/>
- <xs:enumeration value="sse"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Workflow -->
- <xs:complexType name="WorkflowType">
- <xs:sequence>
- <xs:element name="step" type="tns:WorkflowStepType" maxOccurs="unbounded"/>
- </xs:sequence>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="type" type="tns:WorkflowTypeEnum" default="sequential"/>
- <xs:attribute name="persistent" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:complexType name="WorkflowStepType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="window" type="xs:string" use="required"/>
- <xs:attribute name="next" type="xs:string"/>
- <xs:attribute name="previous" type="xs:string"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="condition" type="xs:string"/>
- <xs:attribute name="timeout" type="xs:int"/>
- <xs:attribute name="skippable" type="xs:boolean" default="false"/>
- </xs:complexType>
- <xs:simpleType name="WorkflowTypeEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="sequential"/>
- <xs:enumeration value="parallel"/>
- <xs:enumeration value="conditional"/>
- <xs:enumeration value="state-machine"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Module Views -->
- <xs:complexType name="ModuleViewsType">
- <xs:sequence>
- <xs:element name="view-ref" type="tns:SimpleViewRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="SimpleViewRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="load-priority" type="tns:PriorityEnum" default="normal"/>
- <xs:attribute name="optional" type="xs:boolean" default="false"/>
- </xs:complexType>
- <!-- Module Dependencies -->
- <xs:complexType name="ModuleDependenciesType">
- <xs:sequence>
- <xs:element name="module-ref" type="tns:ModuleRefType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ModuleRefType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="version" type="xs:string"/>
- <xs:attribute name="optional" type="xs:boolean" default="false"/>
- <xs:attribute name="lazy-load" type="xs:boolean" default="false"/>
- </xs:complexType>
- <!-- Main Navigation -->
- <xs:complexType name="MainNavigationType">
- <xs:sequence>
- <xs:element name="nav-item" type="tns:NavItemType" maxOccurs="unbounded"/>
- </xs:sequence>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="style" type="tns:NavigationStyleEnum" default="hierarchical"/>
- <xs:attribute name="responsive" type="xs:boolean" default="true"/>
- </xs:complexType>
- <xs:complexType name="NavItemType">
- <xs:attribute name="text" type="xs:string" use="required"/>
- <xs:attribute name="view" type="xs:string" use="required"/>
- <xs:attribute name="action" type="xs:string" use="required"/>
- <!-- ENHANCEMENT: v1.3 additions -->
- <xs:attribute name="icon" type="xs:string"/>
- <xs:attribute name="badge" type="xs:string"/>
- <xs:attribute name="permission" type="xs:string"/>
- <xs:attribute name="order" type="xs:int" default="0"/>
- </xs:complexType>
- <xs:simpleType name="NavigationStyleEnum">
- <xs:restriction base="xs:string">
- <xs:enumeration value="hierarchical"/>
- <xs:enumeration value="flat"/>
- <xs:enumeration value="breadcrumb"/>
- <xs:enumeration value="tab"/>
- <xs:enumeration value="sidebar"/>
- <xs:enumeration value="drawer"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:schema>
|