|
|
<?xml version="1.0"?>
|
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
|
|
|
|
|
|
<!-- Parametros comuns nos Campos -->
|
|
|
<xs:include schemaLocation="vitruvio-form-common-attrs.xsd" />
|
|
|
|
|
|
<!-- Componentes padrao -->
|
|
|
<xs:include schemaLocation="vitruvio-form-basic-components.xsd" />
|
|
|
|
|
|
<!-- Componentes para uso com bancos de dados -->
|
|
|
<xs:include schemaLocation="vitruvio-form-db-components.xsd" />
|
|
|
|
|
|
<!-- Componentes especificos ao contexto da aplicacao -->
|
|
|
<xs:include schemaLocation="vitruvio-form-specific-components.xsd" />
|
|
|
|
|
|
<!-- Form containers -->
|
|
|
<xs:include schemaLocation="vitruvio-form-containers.xsd" />
|
|
|
|
|
|
<!-- Scripting defs -->
|
|
|
<xs:include schemaLocation="vitruvio-form-scripting.xsd" />
|
|
|
|
|
|
<!-- Suporte a Widgets -->
|
|
|
<xs:include schemaLocation="vitruvio-form-widgets.xsd" />
|
|
|
|
|
|
<!-- Suporte a Widgets -->
|
|
|
<xs:include schemaLocation="vitruvio-mobile-widgets.xsd" />
|
|
|
|
|
|
<!-- Base Form para implementacoes especificas -->
|
|
|
<xs:complexType name="vitruvio-mobile-basic-form-structure">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
|
|
|
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
|
|
|
</xs:sequence>
|
|
|
<xs:attribute name="formKey" type="xs:string" use="required" />
|
|
|
</xs:complexType>
|
|
|
|
|
|
<!-- Images para biblioteca de recursos -->
|
|
|
<xs:complexType name="images-library">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="library" minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence>
|
|
|
<xs:element name="file-id" minOccurs="1" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence>
|
|
|
<xs:element name="static" minOccurs="0" maxOccurs="unbounded">
|
|
|
<xs:complexType>
|
|
|
<xs:simpleContent>
|
|
|
<xs:extension base="xs:string">
|
|
|
<xs:attribute type="xs:string" name="file" use="required" />
|
|
|
</xs:extension>
|
|
|
</xs:simpleContent>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
<xs:element name="by-field-value" minOccurs="0" maxOccurs="unbounded">
|
|
|
<xs:complexType>
|
|
|
<xs:simpleContent>
|
|
|
<xs:extension base="xs:string">
|
|
|
<xs:attribute type="xs:string" name="ref" use="required" />
|
|
|
<xs:attribute type="xs:string" name="searchExtensions" use="required" />
|
|
|
<xs:attribute name="searchPattern" use="optional" >
|
|
|
<xs:simpleType>
|
|
|
<xs:restriction base="xs:string">
|
|
|
<xs:enumeration value="FILE_NAME_STARTS_WITH" />
|
|
|
<xs:enumeration value="FILE_NAME_EXACT_MATCH" />
|
|
|
</xs:restriction>
|
|
|
</xs:simpleType>
|
|
|
</xs:attribute>
|
|
|
</xs:extension>
|
|
|
</xs:simpleContent>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
<xs:attribute type="xs:string" name="key" use="required" />
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<xs:complexType name="vitruvio-mobile-base-form">
|
|
|
<xs:complexContent>
|
|
|
<xs:extension base="vitruvio-mobile-basic-form-structure">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="initScript" type="script" minOccurs="0" maxOccurs="1" />
|
|
|
<xs:element name="discoveryScript" type="script" minOccurs="0" maxOccurs="1" />
|
|
|
<xs:element name="validators" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:choice>
|
|
|
<xs:element name="ScriptValidator" type="form-validation-script" />
|
|
|
<xs:element name="ServerValidator" type="server-side-validation" />
|
|
|
</xs:choice>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
<xs:element name="images" minOccurs="0" maxOccurs="1" type="images-library"/>
|
|
|
<xs:element name="components" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:choice minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:element name="VerticalLayout" type="SubFormVerticalLayout" />
|
|
|
<xs:element name="HorizontalLayout" type="SubFormHorizontalLayout" />
|
|
|
<xs:element name="Panel" type="SubFormPanel" />
|
|
|
<xs:element name="TabLayout" type="SubFormTabLayout" />
|
|
|
</xs:choice>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
<xs:element name="ServerSide" type="MobileServerSide" minOccurs="0" maxOccurs="1" />
|
|
|
</xs:sequence>
|
|
|
</xs:extension>
|
|
|
</xs:complexContent>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<xs:complexType name="server-side-validation">
|
|
|
<xs:attribute name="id" type="xs:string" use="required" />
|
|
|
<xs:attribute name="ref" type="xs:string" use="required" />
|
|
|
<xs:attribute name="execution">
|
|
|
<xs:simpleType>
|
|
|
<xs:restriction base="xs:string">
|
|
|
<xs:enumeration value="SAVE" />
|
|
|
<xs:enumeration value="COMPLETE" />
|
|
|
<xs:enumeration value="BOTH" />
|
|
|
</xs:restriction>
|
|
|
</xs:simpleType>
|
|
|
</xs:attribute>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<!-- Subformularios que podem ser anexados dentro de Forms RAIZ (ROOT) -->
|
|
|
<xs:complexType name="vitruvio-subform">
|
|
|
<xs:complexContent>
|
|
|
<xs:extension base="vitruvio-mobile-basic-form-structure">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="initScript" type="script" minOccurs="0" maxOccurs="1" />
|
|
|
<xs:element name="validators" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:choice>
|
|
|
<xs:element name="ScriptValidator" type="form-validation-script" />
|
|
|
<xs:element name="ServerValidator" type="server-side-validation" />
|
|
|
</xs:choice>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
<xs:element name="ItemList">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:element name="property">
|
|
|
<xs:complexType>
|
|
|
<xs:attribute name="id" use="required" type="xs:string" />
|
|
|
<xs:attribute name="caption" type="xs:string" />
|
|
|
<xs:attribute name="expand-ratio" type="xs:float" />
|
|
|
<xs:attribute name="useCaptionValue" type="xs:boolean" />
|
|
|
<xs:attribute name="format" type="xs:string" />
|
|
|
<xs:attribute name="decimalSeparator" type="xs:string" />
|
|
|
<xs:attribute name="groupingSeparator" type="xs:string" />
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
<xs:attribute name="caption" type="xs:string" />
|
|
|
<xs:attribute name="description" type="xs:string" />
|
|
|
<xs:attribute name="width" type="xs:string" />
|
|
|
<xs:attribute name="height" type="xs:string" />
|
|
|
<xs:attribute name="addItemButtonCaption" type="xs:string" />
|
|
|
<xs:attribute name="removeItemConfirmationMessage" type="xs:string" />
|
|
|
<xs:attribute name="rows" type="xs:positiveInteger" />
|
|
|
<xs:attribute name="minItens" type="xs:positiveInteger" />
|
|
|
<xs:attribute name="maxItens" type="xs:positiveInteger" />
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
<xs:element name="components" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:choice minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:element name="VerticalLayout" type="VerticalLayout" />
|
|
|
<xs:element name="HorizontalLayout" type="HorizontalLayout" />
|
|
|
<xs:element name="Panel" type="Panel" />
|
|
|
<xs:element name="TabLayout" type="TabLayout" />
|
|
|
</xs:choice>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
<xs:element name="images" minOccurs="0" maxOccurs="1" type="images-library"/>
|
|
|
<xs:element name="events" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence>
|
|
|
<xs:element name="crud">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence minOccurs="1" maxOccurs="1">
|
|
|
<xs:element name="script" type="script" maxOccurs="1" minOccurs="1" />
|
|
|
</xs:sequence>
|
|
|
<xs:attribute name="allowedEvents" type="xs:string" />
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
</xs:extension>
|
|
|
</xs:complexContent>
|
|
|
</xs:complexType>
|
|
|
|
|
|
|
|
|
<!-- Extensao dos containers de layout padrao para inclusao de subforms especiais -->
|
|
|
<!-- Grupo de layouts -->
|
|
|
<xs:group name="FormLayoutGroup">
|
|
|
<xs:choice>
|
|
|
<!-- Elementos visuais e containers -->
|
|
|
<xs:element name="VerticalLayout" type="SubFormVerticalLayout" />
|
|
|
<xs:element name="HorizontalLayout" type="SubFormHorizontalLayout" />
|
|
|
<xs:element name="Panel" type="SubFormPanel" />
|
|
|
<xs:element name="TabLayout" type="SubFormTabLayout" />
|
|
|
</xs:choice>
|
|
|
</xs:group>
|
|
|
|
|
|
<!-- Definicao de elementos possiveis por padrao num container de componentes -->
|
|
|
<xs:group name="FormComponentContainer">
|
|
|
<xs:choice>
|
|
|
<!-- Layouts -->
|
|
|
<xs:group ref="FormLayoutGroup" />
|
|
|
|
|
|
<!-- Subforms -->
|
|
|
<xs:element name="SubForm" type="vitruvio-subform" minOccurs="0" maxOccurs="unbounded" />
|
|
|
|
|
|
<!-- Componentes reutilizaveis da biblioteca -->
|
|
|
<xs:element name="ComplexComponent" type="LibraryComplexComponent" />
|
|
|
<xs:element name="FieldComponent" type="LibraryFieldComponent" />
|
|
|
|
|
|
<!-- Suporte a definicao de widgets -->
|
|
|
<xs:group ref="CoreWidgets" />
|
|
|
<xs:element name="GridEditorWidget" type="GridEditorWidget" minOccurs="0" maxOccurs="unbounded" />
|
|
|
<xs:element name="ProgressBarLinear" type="ProgressBarLinear" minOccurs="0" maxOccurs="unbounded" />
|
|
|
|
|
|
<xs:element name="CustomWidget" type="CustomWidget" />
|
|
|
|
|
|
<!-- Campos -->
|
|
|
<xs:group ref="fieldGroup" />
|
|
|
</xs:choice>
|
|
|
</xs:group>
|
|
|
|
|
|
<xs:complexType name="SubFormVerticalLayout">
|
|
|
<xs:sequence>
|
|
|
<xs:group ref="FormComponentContainer" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
</xs:sequence>
|
|
|
<xs:attributeGroup ref="layoutMandatoryAttr"/>
|
|
|
<xs:attributeGroup ref="orderedLayoutAttr"/>
|
|
|
</xs:complexType>
|
|
|
<xs:complexType name="SubFormHorizontalLayout">
|
|
|
<xs:sequence>
|
|
|
<xs:group ref="FormComponentContainer" minOccurs="0" maxOccurs="unbounded"/>
|
|
|
</xs:sequence>
|
|
|
<xs:attributeGroup ref="layoutMandatoryAttr"/>
|
|
|
<xs:attributeGroup ref="orderedLayoutAttr"/>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<!-- Tabs -->
|
|
|
<xs:complexType name="SubFormTabComponent">
|
|
|
<xs:sequence>
|
|
|
<xs:group ref="FormComponentContainer" minOccurs="1" maxOccurs="1"/>
|
|
|
</xs:sequence>
|
|
|
<xs:attribute name="caption" type="xs:string" use="required" />
|
|
|
</xs:complexType>
|
|
|
<xs:complexType name="SubFormTabLayout">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="Tab" type="SubFormTabComponent" minOccurs="1" maxOccurs="unbounded" />
|
|
|
</xs:sequence>
|
|
|
<xs:attribute name="framed" type="xs:boolean" />
|
|
|
<xs:attribute name="compact" type="xs:boolean" />
|
|
|
<xs:attribute name="centerTabs" type="xs:boolean" />
|
|
|
<xs:attribute name="width" type="xs:string" />
|
|
|
<xs:attribute name="height" type="xs:string" />
|
|
|
<xs:attributeGroup ref="layoutMandatoryAttr"/>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<xs:complexType name="SubFormPanel">
|
|
|
<xs:complexContent>
|
|
|
<xs:extension base="BasePanel">
|
|
|
<xs:choice minOccurs="1" maxOccurs="1">
|
|
|
<xs:element name="VerticalLayout" type="SubFormVerticalLayout" />
|
|
|
<xs:element name="HorizontalLayout" type="SubFormHorizontalLayout" />
|
|
|
<xs:element name="TabLayout" type="SubFormTabLayout" />
|
|
|
</xs:choice>
|
|
|
</xs:extension>
|
|
|
</xs:complexContent>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<!-- Componente de Form ROOT -->
|
|
|
<xs:complexType name="vitruvio-subform-enabled-form">
|
|
|
<xs:complexContent>
|
|
|
<xs:extension base="vitruvio-mobile-basic-form-structure">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="initScript" type="script" minOccurs="0" maxOccurs="1" />
|
|
|
<xs:element name="discoveryScript" type="script" minOccurs="0" maxOccurs="1" />
|
|
|
<xs:element name="validators" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:choice>
|
|
|
<xs:element name="ScriptValidator" type="form-validation-script" />
|
|
|
<xs:element name="ServerValidator" type="server-side-validation" />
|
|
|
</xs:choice>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
<xs:element name="attachments" type="FormAttachments" minOccurs="0" maxOccurs="1" />
|
|
|
<xs:element name="components" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:choice minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:element name="VerticalLayout" type="SubFormVerticalLayout" />
|
|
|
<xs:element name="HorizontalLayout" type="SubFormHorizontalLayout" />
|
|
|
<xs:element name="Panel" type="SubFormPanel" />
|
|
|
<xs:element name="TabLayout" type="SubFormTabLayout" />
|
|
|
</xs:choice>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
</xs:extension>
|
|
|
</xs:complexContent>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<xs:attributeGroup name="mobileDataSourceAttrs">
|
|
|
<xs:attribute name="connection-key" type="xs:string" />
|
|
|
<xs:attribute name="autoSyncOnInit" type="xs:boolean" />
|
|
|
<xs:attribute name="autoSyncOnDiscovery" type="xs:boolean" />
|
|
|
<xs:attribute name="refreshInSeconds" type="xs:int" />
|
|
|
<xs:attribute name="validForSeconds" type="xs:int" />
|
|
|
<xs:attribute name="workOnline" type="xs:boolean" />
|
|
|
<xs:attribute name="scope">
|
|
|
<xs:simpleType>
|
|
|
<xs:restriction base="xs:string">
|
|
|
<xs:enumeration value="DEFAULT"/>
|
|
|
<xs:enumeration value="PROCESS_DEFINITION"/>
|
|
|
<xs:enumeration value="PROCESS_INSTANCE"/>
|
|
|
<xs:enumeration value="TASK_INSTANCE"/>
|
|
|
</xs:restriction>
|
|
|
</xs:simpleType>
|
|
|
</xs:attribute>
|
|
|
</xs:attributeGroup>
|
|
|
|
|
|
<xs:complexType name="mobile-script-data-source">
|
|
|
<xs:complexContent>
|
|
|
<xs:extension base="script-id-required">
|
|
|
<xs:attributeGroup ref="mobileDataSourceAttrs" />
|
|
|
</xs:extension>
|
|
|
</xs:complexContent>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<xs:complexType name="mobile-free-query-datasource">
|
|
|
<xs:simpleContent>
|
|
|
<xs:extension base="xs:string">
|
|
|
<xs:attribute name="id" type="xs:string" use="required" />
|
|
|
<xs:attribute name="name" type="xs:string" />
|
|
|
<xs:attribute name="description" type="xs:string" />
|
|
|
<xs:attributeGroup ref="mobileDataSourceAttrs" />
|
|
|
</xs:extension>
|
|
|
</xs:simpleContent>
|
|
|
</xs:complexType>
|
|
|
|
|
|
<!-- Datasource para uso de Querys mapeadas pre cadastradas no Vitruvio -->
|
|
|
<xs:complexType name="mobie-query-datasource">
|
|
|
<xs:attribute name="key" type="xs:string" use="required" />
|
|
|
<xs:attributeGroup ref="mobileDataSourceAttrs" />
|
|
|
</xs:complexType>
|
|
|
|
|
|
<xs:complexType name="MobileServerSide">
|
|
|
<xs:sequence>
|
|
|
<xs:element name="Validators" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence>
|
|
|
<xs:element name="Validator" type="script-id-required" minOccurs="1" maxOccurs="unbounded" />
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
|
|
|
<xs:element name="DataSources" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence>
|
|
|
<xs:choice minOccurs="1" maxOccurs="unbounded">
|
|
|
<xs:element name="ScriptDataSource" type="mobile-script-data-source" minOccurs="0" maxOccurs="unbounded" />
|
|
|
<xs:element name="SQLBuilderScriptDataSource" type="mobile-script-data-source" minOccurs="0" maxOccurs="unbounded" />
|
|
|
<xs:element name="FreeQueryDataSource" type="mobile-free-query-datasource" minOccurs="0" maxOccurs="unbounded" />
|
|
|
<xs:element name="QueryDataSource" type="mobie-query-datasource" minOccurs="0" maxOccurs="unbounded" />
|
|
|
</xs:choice>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
|
|
|
<xs:element name="Bridges" minOccurs="0" maxOccurs="1">
|
|
|
<xs:complexType>
|
|
|
<xs:sequence>
|
|
|
<xs:element name="Bridge" type="script-id-required" minOccurs="1" maxOccurs="unbounded" />
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
</xs:element>
|
|
|
</xs:sequence>
|
|
|
</xs:complexType>
|
|
|
|
|
|
</xs:schema>
|