Especificações XSD dos formulários Vitruvio
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1057 lines
40 KiB

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!--
Componentes basicos para uso nos formularios do Vitruvio
-->
<!-- Parametros comuns nos Campos -->
<xs:include schemaLocation="vitruvio-form-common-attrs.xsd" />
<xs:include schemaLocation="vitruvio-form-scripting.xsd" />
<xs:include schemaLocation="vitruvio-form-db-components.xsd" />
<!-- Definicao de widgets CORE, dentro do Namespace do Vitruvio -->
<xs:complexType name="HRWidget">
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<!-- Calendar DataSource -->
<xs:complexType name="calendar-datasource-with-builder">
<xs:choice>
<xs:element name="freeQuery" type="freeDataSource" />
<xs:element name="query" type="queryDataSource" />
<xs:element name="sqlBuilderDataSource" type="sqlBuilderScript" />
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="key-field" type="xs:string" use="required"/>
<xs:attribute name="caption-field" type="xs:string" use="required"/>
<xs:attribute name="start-date-field" type="xs:string" use="required"/>
<xs:attribute name="end-date-field" type="xs:string" use="required"/>
<xs:attribute name="description-field" type="xs:string" use="optional"/>
<xs:attributeGroup ref="datasource-basic-attrs" />
</xs:complexType>
<xs:complexType name="HandWriterWidget">
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="writerWidth" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Define o tamanho da área de escrita em pixels. Exemplo: writerWidth="100"
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="writerHeight" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Define a largura da área de escrita em pixels. Exemplo: writerHeight="100"
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<xs:complexType name="ProcessoTimelineWidget">
<xs:choice>
<xs:element name="initScript" type="ScriptEvent" minOccurs="1" maxOccurs="1" />
</xs:choice>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="maxItensPerScreen" type="xs:positiveInteger" use="optional" />
<xs:attribute name="scrolling" type="xs:boolean" use="required" />
<xs:attribute name="sizeMode" type="xs:string" use="required" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<xs:complexType name="ClipboardButtonWidget">
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="ref" type="xs:string" use="required" />
<xs:attribute name="sucessMessage" type="xs:string" use="optional" />
<xs:attribute name="failMessage" type="xs:string" use="optional" />
<xs:attribute name="description" type="xs:string" use="optional" />
<xs:attributeGroup ref="formButtonAttrs" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<!-- DataSource baseado em Elementos de biblioteca -->
<xs:complexType name="ResourceLibraryDataSource">
<xs:attribute name="key" type="xs:string" use="required" />
<xs:attribute name="resource" type="xs:string" use="required" />
</xs:complexType>
<!-- Calendar -->
<xs:complexType name="CalendarWidget">
<xs:sequence>
<xs:choice>
<xs:element name="sql-datasource" type="calendar-datasource-with-builder" minOccurs="1" maxOccurs="1" />
</xs:choice>
<xs:element name="events" type="calendarEvents" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attributeGroup ref="basicElement" />
<xs:attribute name="defaultViewType" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="MONTH" />
<xs:enumeration value="WEEK" />
<xs:enumeration value="DAY" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="showViewTypeButtons" type="xs:boolean" use="optional" />
<xs:attribute name="showNavigationButtons" type="xs:boolean" use="optional" />
</xs:complexType>
<!-- Definicao de widgets CORE, dentro do Namespace do Vitruvio -->
<xs:complexType name="ButtonWidget">
<xs:sequence>
<xs:element name="onClickScript" type="script" minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="description" type="xs:string" use="optional" />
<xs:attribute name="disableOnClick" type="xs:boolean" />
<xs:attribute name="enableOnClick" type="xs:boolean" />
<xs:attribute name="alwaysEnabled" type="xs:boolean" />
<xs:attribute name="defaultIcon" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="SAVE" />
<xs:enumeration value="REMOVE" />
<xs:enumeration value="SEARCH" />
<xs:enumeration value="BACK" />
<xs:enumeration value="ARROW_UP" />
<xs:enumeration value="ARROW_DOWN" />
<xs:enumeration value="ARROW_LEFT" />
<xs:enumeration value="ARROW_RIGHT" />
<xs:enumeration value="ARROWS" />
<xs:enumeration value="CALCULATOR" />
<xs:enumeration value="CALENDAR" />
<xs:enumeration value="CAMERA" />
<xs:enumeration value="UPLOAD" />
<xs:enumeration value="DOWNLOAD" />
<xs:enumeration value="CHECK" />
<xs:enumeration value="COMMENTS" />
<xs:enumeration value="EDIT" />
<xs:enumeration value="EXPAND" />
<xs:enumeration value="ADD" />
<xs:enumeration value="STAR" />
<xs:enumeration value="TAGS" />
<xs:enumeration value="USER" />
<xs:enumeration value="USERS" />
<xs:enumeration value="TOOL" />
<xs:enumeration value="TRASH" />
<xs:enumeration value="PIN" />
<xs:enumeration value="TABLE" />
<xs:enumeration value="REFRESH" />
<xs:enumeration value="QUESTION" />
<xs:enumeration value="ARCHIVE" />
<xs:enumeration value="CHART" />
<xs:enumeration value="DATABASE" />
<xs:enumeration value="EMAIL" />
<xs:enumeration value="FILE" />
<xs:enumeration value="IMAGE" />
<xs:enumeration value="SEND" />
<xs:enumeration value="SORT_LETTER" />
<xs:enumeration value="SORT_NUMBER" />
<xs:enumeration value="SORT" />
<xs:enumeration value="ATTACHED" />
<xs:enumeration value="KEY" />
<xs:enumeration value="PRINT" />
<xs:enumeration value="SERVER" />
<xs:enumeration value="STREET_VIEW" />
<xs:enumeration value="LOCK" />
<xs:enumeration value="UNLOCK" />
<xs:enumeration value="PENCIL" />
<xs:enumeration value="PHONE" />
<xs:enumeration value="FILTER" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="formButtonAttrs" />
<xs:attributeGroup ref="basicElement" />
<xs:attributeGroup ref="shortcutActionGroup" />
</xs:complexType>
<xs:complexType name="LinkWidget">
<!--
<xs:sequence>
<xs:element name="onClickScript" type="script" minOccurs="1" maxOccurs="1" />
</xs:sequence>
-->
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="description" type="xs:string" use="optional" />
<xs:attribute name="src" type="xs:string" use="optional" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<!-- D3Widget -->
<xs:complexType name="D3Widget">
<xs:all>
<xs:element name="D3Script" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="StyleSheet" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="ServerScript" type="script" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attributeGroup ref="basicElement" />
<xs:attributeGroup ref="lazyLoadAttrs" />
</xs:complexType>
<xs:complexType name="StringValueList">
<xs:sequence>
<xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- PivotTable -->
<xs:complexType name="PivotTableWidget">
<xs:all>
<xs:element name="DataSource" type="fullDatasource" maxOccurs="1" minOccurs="1" />
<xs:element name="CustomInitScript" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="Rows" type="StringValueList" minOccurs="0" maxOccurs="1" />
<xs:element name="Columns" type="StringValueList" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attributeGroup ref="basicElement" />
<xs:attributeGroup ref="lazyLoadAttrs" />
</xs:complexType>
<!-- Orb -->
<xs:complexType name="AggregateFunctionParameter">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" use="required" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="OrbFormatFunc">
<xs:choice>
<xs:element name="Params" type="AggregateFunctionParams" minOccurs="0" maxOccurs="1" />
<xs:element name="CustomFunction" type="xs:string" />
</xs:choice>
<xs:attribute name="name" use="required" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="INTEGER" />
<xs:enumeration value="DECIMAL" />
<xs:enumeration value="DATE" />
<xs:enumeration value="CUSTOM" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="AggregateFunctionParams">
<xs:sequence>
<xs:element name="parameter" type="AggregateFunctionParameter" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="OrbField">
<xs:all minOccurs="0" maxOccurs="1">
<xs:element name="CustomAggregateFunction" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="FormatFunc" type="OrbFormatFunc" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="name" use="required" type="xs:string" />
<xs:attribute name="caption" type="xs:string" />
<xs:attribute name="sort" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ASC" />
<xs:enumeration value="DESC" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="aggregate" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="SUM" />
<xs:enumeration value="COUNT" />
<xs:enumeration value="MIN" />
<xs:enumeration value="MAX" />
<xs:enumeration value="AVERAGE" />
<xs:enumeration value="PRODUCT" />
<xs:enumeration value="VARIANCE_SUBSET" />
<xs:enumeration value="VARIANCE_POPULATION" />
<xs:enumeration value="STANDARD_DEVIATION_SUBSET" />
<xs:enumeration value="CUSTOM" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="aggregateName" use="optional" />
</xs:complexType>
<xs:complexType name="OrbFields">
<xs:sequence>
<xs:element name="Field" type="OrbField" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="OrbConfig">
<xs:choice>
<xs:element name="CustomInitScript" type="xs:string" />
<xs:element name="InitParameters" type="OrbInitParameters" />
</xs:choice>
</xs:complexType>
<xs:complexType name="OrbInitParameters">
<xs:all>
<xs:element name="Fields" type="OrbFields" minOccurs="1" maxOccurs="1" />
<xs:element name="Rows" type="StringValueList" minOccurs="0" maxOccurs="1" />
<xs:element name="Columns" type="StringValueList" minOccurs="0" maxOccurs="1" />
<xs:element name="Data" type="StringValueList" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="dataHeadersLocation">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="rows" />
<xs:enumeration value="columns" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="theme">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="red" />
<xs:enumeration value="blue" />
<xs:enumeration value="green" />
<xs:enumeration value="orange" />
<xs:enumeration value="flower" />
<xs:enumeration value="gray" />
<xs:enumeration value="white" />
<xs:enumeration value="black" />
<xs:enumeration value="bootstrap" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="toolbarVisible" type="xs:boolean" />
<xs:attribute name="grandTotalRowsVisible" type="xs:boolean" />
<xs:attribute name="grandTotalColumnsVisible" type="xs:boolean" />
<xs:attribute name="subTotalVisible" type="xs:boolean" />
<xs:attribute name="subTotalColapsed" type="xs:boolean" />
<xs:attribute name="subTotalCollapsible" type="xs:boolean" />
<xs:attribute name="canMoveFields" type="xs:boolean" />
</xs:complexType>
<xs:complexType name="OrbWidget">
<xs:all>
<xs:element name="DataSource" type="fullDatasource" maxOccurs="1" minOccurs="1" />
<xs:element name="Config" type="OrbConfig" maxOccurs="1" minOccurs="1" />
</xs:all>
<!-- Required id -->
<xs:attribute name="id" type="xs:string" use="required" />
<!-- Basic element -->
<xs:attributeGroup ref="basicElement" />
<xs:attributeGroup ref="lazyLoadAttrs" />
</xs:complexType>
<xs:complexType name="WebPivotTableDataSource">
<xs:choice>
<xs:element name="freeQuery" type="freeDataSource" />
<xs:element name="query" type="queryDataSource" />
<xs:element name="scriptDataSource" type="script" />
<xs:element name="olap">
<xs:complexType>
<xs:attribute name="xmlaUrl" type="xs:string" use="required" />
<xs:attribute name="catalog" type="xs:string" use="required" />
<xs:attribute name="cubeName" type="xs:string" use="required" />
<xs:attribute name="dataSourceInfo" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="maxRowsForInMemoryDataSource" type="xs:positiveInteger" />
</xs:complexType>
<!-- WebPivotable Widget -->
<xs:complexType name="WebPivotTableWidget">
<xs:sequence>
<xs:element name="DataSource" type="WebPivotTableDataSource" maxOccurs="1" minOccurs="1" />
<xs:element name="DrillAction" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:choice>
<xs:element name="OpenPanel">
<xs:complexType>
<xs:attribute name="panel-key" use="required" />
<xs:attribute name="engine-variable-name" />
<xs:attribute name="target" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="MAIN_AREA_TAB" />
<xs:enumeration value="MODAL_WINDOW" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<!-- Required id -->
<xs:attribute name="id" type="xs:string" use="required" />
<!-- Basic element -->
<xs:attributeGroup ref="basicElement" />
<xs:attributeGroup ref="lazyLoadAttrs" />
<xs:attribute name="debugMode" type="xs:boolean" />
<xs:attribute name="noFixedColumns" type="xs:boolean" />
<xs:attribute name="version" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="4" />
<xs:enumeration value="5" />
<xs:enumeration value="6" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="OrgChartDataSource">
<xs:choice>
<xs:element name="scriptDataSource" type="script" />
</xs:choice>
</xs:complexType>
<xs:complexType name="OrgChartEvents">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:choice>
<xs:element name="clickEvent" type="ScriptEvent" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<!-- WebPivotable Widget -->
<xs:complexType name="OrgChartWidget">
<xs:sequence>
<xs:element name="DataSource" type="OrgChartDataSource" maxOccurs="1" minOccurs="1" />
<xs:element name="events" type="OrgChartEvents" maxOccurs="1" minOccurs="0" />
</xs:sequence>
<!-- Required id -->
<xs:attribute name="id" type="xs:string" use="required" />
<!-- Basic element -->
<xs:attributeGroup ref="basicElement" />
<xs:attributeGroup ref="lazyLoadAttrs" />
<!-- custom attrs -->
<xs:attribute name="exportFileName" type="xs:string" use="optional" />
<xs:attribute name="showExportButton" type="xs:boolean" use="optional" />
<xs:attribute name="depth" type="xs:positiveInteger" use="optional" />
<xs:attribute name="verticalDepth" type="xs:positiveInteger" use="optional" />
<xs:attribute name="toggleSiblingsResp" type="xs:boolean" use="optional" />
<xs:attribute name="pan" type="xs:boolean" use="optional" />
<xs:attribute name="zoom" type="xs:boolean" use="optional" />
<xs:attribute name="nodeHeight" type="xs:string" use="optional" />
<xs:attribute name="direction" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TOP_TO_BOTTOM" />
<xs:enumeration value="BOTTOM_TO_TOP" />
<xs:enumeration value="LEFT_TO_RIGHT" />
<xs:enumeration value="RIGHT_TO_LEFT" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<!-- Image Widget -->
<xs:complexType name="Base64DataSource">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="extension" use="required" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ImageDataSource">
<xs:choice>
<xs:element name="base64" type="Base64DataSource" />
<xs:element name="url" type="xs:string" />
<xs:element name="library" type="ResourceLibraryDataSource" />
</xs:choice>
</xs:complexType>
<xs:complexType name="ImageWidget">
<xs:all>
<xs:element name="image" type="ImageDataSource" maxOccurs="1" minOccurs="0" />
</xs:all>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<!-- Upload file Widget -->
<xs:complexType name="FileUploadWidget">
<xs:sequence>
<xs:element name="AllowedExtensions" type="StringValueList" minOccurs="0" maxOccurs="1" />
<xs:element name="AllowedMimes" type="StringValueList" minOccurs="0" maxOccurs="1" />
<xs:element name="OnFileUploadScript" type="script" minOccurs="0" maxOccurs="1" />
<xs:element name="AfterSaveFileAsAttachmentScript" type="script" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="maxSize" type="xs:positiveInteger" />
<xs:attribute name="usePanel" type="xs:boolean" />
<xs:attribute name="panelCaption" type="xs:string" />
<xs:attribute name="action" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="NOTIFY_SCRIPT" />
<xs:enumeration value="SAVE_AS_PROCESS_ATTACHMENT" />
<xs:enumeration value="SAVE_AS_TASK_ATTACHMENT" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="attachmentId" type="xs:string" use="optional" />
<xs:attribute name="attachmentName" type="xs:string" use="optional" />
<xs:attribute name="attachmentTag" type="xs:string" use="optional" />
<xs:attribute name="canBeRemovedByAttachmentManager" type="xs:boolean" />
<xs:attribute name="showMessageOnFileLoadComplete" type="xs:boolean" />
<xs:attribute name="removeAttachmentOnDiscard" type="xs:boolean" />
<xs:attribute name="alwaysEnabled" type="xs:boolean" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<xs:complexType name="MultiFileUploadWidget">
<xs:sequence>
<xs:element name="AllowedMimes" type="StringValueList" minOccurs="0" maxOccurs="1" />
<xs:element name="OnFileUploadScript" type="script" minOccurs="0" maxOccurs="1" />
<xs:element name="AfterSaveFileAsAttachmentScript" type="script" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="maxSize" type="xs:positiveInteger" />
<xs:attribute name="maxFiles" type="xs:positiveInteger" />
<xs:attribute name="panelCaption" type="xs:string" />
<xs:attribute name="uploadButtonCaption" type="xs:string" />
<xs:attribute name="confirmBeforeDeleteFiles" type="xs:boolean" />
<xs:attribute name="action" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="NOTIFY_SCRIPT" />
<xs:enumeration value="SAVE_AS_PROCESS_ATTACHMENT" />
<xs:enumeration value="SAVE_AS_TASK_ATTACHMENT" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="attachmentTag" type="xs:string" use="optional" />
<xs:attribute name="canBeRemovedByAttachmentManager" type="xs:boolean" />
<xs:attribute name="removeAttachmentOnDiscard" type="xs:boolean" />
<xs:attribute name="alwaysEnabled" type="xs:boolean" />
<xs:attribute name="allowFilesWithSameName" type="xs:boolean" />
<xs:attribute name="showAttachmentIdIfApplicable" type="xs:boolean" />
<xs:attribute name="allowUpdateAttachmentId" type="xs:boolean" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<!-- ScriptWidget (Widget baseado em script, permitindo inicializacao e rendrizacao dinamica) -->
<xs:complexType name="ScriptWidget">
<xs:sequence>
<xs:element name="factory">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="LayoutFactory">
<xs:complexType>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="CssLayout" />
<xs:enumeration value="VerticalLayout" />
<xs:enumeration value="HorizontalLayout" />
<xs:enumeration value="TabLayout" />
<xs:enumeration value="GridLayout" />
<xs:enumeration value="HorizontalSplitPanel" />
<xs:enumeration value="VerticalSplitPanel" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="width" type="xs:string" />
<xs:attribute name="height" type="xs:string" />
<xs:attribute name="visible" type="xs:boolean" />
</xs:complexType>
</xs:element>
<xs:element name="ScriptFactory" type="script" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="InitScript" type="script" minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attributeGroup ref="baseElement" />
</xs:complexType>
<!-- Progressbar Widget -->
<xs:complexType name="ProgressBarWidget">
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="initialValue" type="xs:float" />
<xs:attribute name="backgroundColor" type="xs:string" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<xs:complexType name="KPI">
<xs:sequence>
<xs:element name="header" minOccurs="0" maxOccurs="1" />
<xs:element name="content" minOccurs="1" maxOccurs="1" />
<xs:element name="footer" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="tag" type="xs:string" use="required" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<xs:complexType name="KPIWidget">
<xs:sequence>
<xs:element name="KPIList">
<xs:complexType>
<xs:sequence>
<xs:element name="KPI" type="KPI" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InitScript" type="script" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="orientation">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="vertical" />
<xs:enumeration value="horizontal" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="basicElement" />
<xs:attributeGroup ref="borderInfo" />
</xs:complexType>
<!-- SubFormProgressWidget -->
<xs:complexType name="SubFormProgressWidget">
<xs:sequence>
<xs:element name="ItemList" minOccurs="0" maxOccurs="1">
<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="valueColumnHeader" type="xs:string" />
<xs:attribute name="captionColumnHeader" type="xs:string" />
<xs:attribute name="displayValue" type="xs:boolean" />
<xs:attribute name="displayCaptionValue" type="xs:boolean" />
<xs:attribute name="expand-ratio" type="xs:float" />
<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:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="subFormKey" type="xs:string" use="required" />
<xs:attribute name="showMetricStartAndEnd" type="xs:boolean" />
<xs:attribute name="calculateTaskExecutionTimesBy">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="FORM_METRICS" />
<xs:enumeration value="TASK_COMPLETE_TIME" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="allowTaskTransfer" type="xs:boolean" />
<xs:attribute name="allowProcessCancel" type="xs:boolean" />
<xs:attribute name="allowTaskReopening" type="xs:boolean" />
<xs:attribute name="formImplementation">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="WEB_DESKTOP" />
<xs:enumeration value="WEB_MOBILE" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="CameraWidgetActionScript">
<xs:sequence>
<xs:element name="ActionScript" type="script" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="CameraWidgetActionSaveAttachmentProcess">
<xs:sequence>
<xs:element name="AfterSaveScript" type="script" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="attachmentName" type="xs:string" use="required" />
<xs:attribute name="filename" type="xs:string" use="required" />
<xs:attribute name="canBeRemovedByAttachmentManager" type="xs:boolean" />
</xs:complexType>
<xs:complexType name="CameraWidgetActionSaveAttachmentTask">
<xs:sequence>
<xs:element name="AfterSaveScript" type="script" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="attachmentId" type="xs:string" use="required" />
<xs:attribute name="attachmentName" type="xs:string" use="required" />
<xs:attribute name="filename" type="xs:string" use="required" />
<xs:attribute name="canBeRemovedByAttachmentManager" type="xs:boolean" />
</xs:complexType>
<xs:complexType name="CameraWidget">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="Action">
<xs:complexType>
<xs:choice>
<xs:element name="NotifyScript" type="CameraWidgetActionScript" />
<xs:element name="SaveAsProcessAttachment" type="CameraWidgetActionSaveAttachmentProcess" />
<xs:element name="SaveAsTaskAttachment" type="CameraWidgetActionSaveAttachmentTask" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="renderAsPopupButton" type="xs:boolean" />
<xs:attribute name="popupButtonCaption" type="xs:string" />
<xs:attribute name="showPreviewPanel" type="xs:boolean" />
<xs:attribute name="webcamWidth" type="xs:string" />
<xs:attribute name="webcamWHeight" type="xs:string" />
<xs:attribute name="previewWidth" type="xs:string" />
<xs:attribute name="previewHeight" type="xs:string" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<!-- Plano estrategico -->
<xs:complexType name="MapaEstrategicoWidget">
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="Action">
<xs:complexType>
<xs:sequence>
<xs:element name="objectiveClickScript" type="script" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="sigla" type="xs:string" use="required" />
<xs:attribute name="readOnly" type="xs:boolean" use="optional" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<!-- TimerCounter Widget -->
<xs:complexType name="TimerWidget">
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="size" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="LARGE" />
<xs:enumeration value="VERY_LARGE" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="style" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="RED" />
<xs:enumeration value="COLORED" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="resolution" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="HOUR" />
<xs:enumeration value="MINUTE" />
<xs:enumeration value="SECOND" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="initPaused" type="xs:boolean" use="optional" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<!-- Grupo dos Core Widgets -->
<xs:group name="CoreWidgets">
<xs:choice>
<xs:element name="ButtonWidget" type="ButtonWidget" />
<xs:element name="D3Widget" type="D3Widget" />
<xs:element name="PivotTableWidget" type="PivotTableWidget" />
<xs:element name="OrbWidget" type="OrbWidget" />
<xs:element name="WebPivotTableWidget" type="WebPivotTableWidget" />
<xs:element name="ImageWidget" type="ImageWidget" />
<xs:element name="FileUploadWidget" type="FileUploadWidget" />
<xs:element name="MultiFileUploadWidget" type="MultiFileUploadWidget" />
<xs:element name="ScriptWidget" type="ScriptWidget" />
<xs:element name="ProgressBarWidget" type="ProgressBarWidget" />
<xs:element name="KPIWidget" type="KPIWidget" />
<xs:element name="SubFormProgressWidget" type="SubFormProgressWidget" />
<xs:element name="LinkWidget" type="LinkWidget" />
<xs:element name="CameraWidget" type="CameraWidget" />
<xs:element name="OrgChartWidget" type="OrgChartWidget" />
<xs:element name="MapaEstrategicoWidget" type="MapaEstrategicoWidget" />
<xs:element name="TimerWidget" type="TimerWidget" />
<xs:element name="ScreenshotWidget" type="ScreenshotWidget" />
<xs:element name="CalendarWidget" type="CalendarWidget" />
<xs:element name="ProcessoTimelineWidget" type="ProcessoTimelineWidget" />
<xs:element name="HRWidget" type="HRWidget" />
<xs:element name="SigplusWidget" type="SigplusWidget" />
<xs:element name="DiffWidget" type="DiffWidget" />
</xs:choice>
</xs:group>
<!-- Possibilidade de adicionar um widget customizado fora do esquema padrao -->
<xs:complexType name="CustomWidget">
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="1" processContents="skip" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attributeGroup ref="lazyLoadAttrs" />
</xs:complexType>
<!-- Charts -->
<xs:attributeGroup name="chartAttrs">
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="theme">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="DEFAULT" />
<xs:enumeration value="DARK" />
<xs:enumeration value="MACARONS" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="basicElement" />
</xs:attributeGroup>
<xs:complexType name="chartAxis">
<xs:attribute name="type" type="xs:string" />
<xs:attribute name="column" type="xs:string" />
<xs:attribute name="caption" type="xs:string" />
<xs:attribute name="min" type="xs:integer" />
<xs:attribute name="max" type="xs:integer" />
<xs:attribute name="interval" type="xs:integer" />
<xs:attribute name="minInterval" type="xs:integer" />
</xs:complexType>
<xs:complexType name="chartSerie">
<xs:attribute name="type" type="xs:string" use="required" />
<xs:attribute name="caption" type="xs:string" use="required"/>
<xs:attribute name="column" type="xs:string" use="required"/>
<xs:attribute name="color" type="xs:string"/>
</xs:complexType>
<xs:complexType name="ChartBarWidget">
<xs:sequence>
<xs:element name="datasource" type="datasource" maxOccurs="1" minOccurs="1" />
<xs:element name="bind" type="DBMultiBind" maxOccurs="1" minOccurs="0" />
<xs:element name="axisX" type="chartAxis" maxOccurs="1" minOccurs="1" />
<xs:element name="axisY" type="chartAxis" maxOccurs="1" minOccurs="1" />
<xs:element name="series" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="serie" type="chartSerie" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="chartAttrs" />
</xs:complexType>
<xs:complexType name="ChartPieWidget">
<xs:sequence>
<xs:element name="datasource" type="datasource" maxOccurs="1" minOccurs="1" />
<xs:element name="bind" type="DBMultiBind" maxOccurs="1" minOccurs="0" />
<xs:element name="series" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="serie" type="chartSerie" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="chartAttrs" />
</xs:complexType>
<xs:complexType name="ChartFunnelWidget">
<xs:sequence>
<xs:element name="datasource" type="datasource" maxOccurs="1" minOccurs="1" />
<xs:element name="bind" type="DBMultiBind" maxOccurs="1" minOccurs="0" />
<xs:element name="series" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="serie" type="chartSerie" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="chartAttrs" />
</xs:complexType>
<xs:complexType name="ChartLineWidget">
<xs:sequence>
<xs:element name="datasource" type="datasource" maxOccurs="1" minOccurs="1" />
<xs:element name="bind" type="DBMultiBind" maxOccurs="1" minOccurs="0" />
<xs:element name="axisX" type="chartAxis" maxOccurs="1" minOccurs="1" />
<xs:element name="axisY" type="chartAxis" maxOccurs="1" minOccurs="1" />
<xs:element name="series">
<xs:complexType>
<xs:sequence>
<xs:element name="serie" type="chartSerie" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="chartAttrs" />
</xs:complexType>
<xs:complexType name="ChartGaugeWidget">
<xs:sequence>
<xs:element name="datasource" type="datasource" maxOccurs="1" minOccurs="1"/>
<xs:element name="bind" type="DBMultiBind" maxOccurs="1" minOccurs="0" />
<xs:element name="series">
<xs:complexType>
<xs:sequence>
<xs:element name="serie" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="chartSerie">
<xs:attribute name="center" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="chartAttrs" />
</xs:complexType>
<xs:complexType name="ScreenshotWidget">
<xs:sequence>
<xs:element name="target" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:choice maxOccurs="1" minOccurs="1">
<xs:element name="layout" >
<xs:complexType>
<xs:attribute name="layoutId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="output" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:choice maxOccurs="1" minOccurs="1">
<xs:element name="jpg" />
<xs:element name="png" />
<xs:element name="pdf" >
<xs:complexType>
<xs:attribute name="margin" type="xs:int" />
<xs:attribute name="pageSize">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="A1" />
<xs:enumeration value="A2" />
<xs:enumeration value="A3" />
<xs:enumeration value="A4" />
<xs:enumeration value="A5" />
<xs:enumeration value="A6" />
<xs:enumeration value="A7" />
<xs:enumeration value="A8" />
<xs:enumeration value="A10" />
<xs:enumeration value="LETTER" />
<xs:enumeration value="SCREENSHOT_SIZE" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="maxWidth" type="xs:string" />
<xs:attribute name="maxHeight" type="xs:string" />
<xs:attribute name="scale" type="xs:positiveInteger" />
</xs:complexType>
</xs:element>
<xs:element name="action" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:choice maxOccurs="1" minOccurs="1">
<xs:element name="download" >
<xs:complexType>
<xs:attribute name="filename" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="print" >
<xs:complexType>
<xs:attribute name="filename" use="optional" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="alwaysEnabled" type="xs:boolean" />
<xs:attribute name="description" type="xs:string" use="optional" />
<xs:attributeGroup ref="basicElement" />
<xs:attributeGroup ref="formButtonAttrs" />
</xs:complexType>
<xs:complexType name="SigplusWidget">
<xs:sequence>
<xs:element name="SignedSuccessScript" type="script" minOccurs="0" maxOccurs="1" />
<xs:element name="SignedErrorScript" type="script" minOccurs="0" maxOccurs="1" />
<xs:element name="UsedWithMissingPluginScript" type="script" minOccurs="0" maxOccurs="1" />
<xs:element name="OnCleanupScript" type="script" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="description" type="xs:string" use="optional" />
<xs:attribute name="imageCaptureWidthPX" type="xs:positiveInteger" use="optional" />
<xs:attribute name="imageCaptureHeightPX" type="xs:positiveInteger" use="optional" />
<xs:attribute name="drawPreview" type="xs:boolean" use="optional" />
<xs:attribute name="previewCaption" type="xs:string" use="optional" />
<xs:attribute name="drawCleanupButton" type="xs:boolean" use="optional" />
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
<xs:complexType name="DiffWidget" >
<xs:attribute name="id" type="xs:string" use="required" />
<xs:attribute name="description" type="xs:string" use="optional" />
<xs:attribute name="outputFormat" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="line-by-line" />
<xs:enumeration value="side-by-side" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="contentToggle" type="xs:boolean" use="optional" />
<xs:attribute name="syncronisedScroll" type="xs:boolean" use="optional" />
<xs:attribute name="scrollable" type="xs:boolean" use="optional" />
<xs:attribute name="diffStyle" use="optional" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="word" />
<xs:enumeration value="char" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="basicElement" />
</xs:complexType>
</xs:schema>