<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="ATE20" elementFormDefault="qualified"
targetNamespace="http://aais.com/schema/7.4.0/ATE/ATE"
xmlns:aais="http://aais.com/schema/7.4.0/ATE/AstraTypes"
xmlns:ate="http://aais.com/schema/7.4.0/ATE/ATE"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://aais.com/schema/7.4.0/ATE/AstraTypes" schemaLocation="./AstraTypes.xsd"/>
<!-- ==================== Define Attribute Groups ====================== -->
<xs:attributeGroup name="namedElementAttribs">
<xs:attribute name="name" type="xs:NCName" use="required">
<xs:annotation>
<xs:documentation>
<![CDATA[The name attribute defines the identifier by which the the node is referenced.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="commentableElementAttribs">
<xs:attributeGroup ref="ate:namedElementAttribs"></xs:attributeGroup>
<xs:attribute name="comment" type="xs:string" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="endPointRefedElementAttribs">
<xs:attributeGroup ref="ate:commentableElementAttribs"></xs:attributeGroup>
<xs:attribute name="endPoint" use="required" type="xs:NCName">
<xs:annotation>
<xs:documentation>
<![CDATA[The endPoint attribute refers to a name atribute of an <EndPoint> type element.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="endPointRefableElementAttribs">
<xs:attributeGroup ref="ate:commentableElementAttribs"></xs:attributeGroup>
<xs:attribute name="endPoint" use="optional" type="xs:NCName">
<xs:annotation>
<xs:documentation>
<![CDATA[The endPoint attribute refers to a name atribute of an <EndPoint> type element.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="conditionalElement">
<xs:attribute name="if" type="aais:nonEmptyString" use="optional">
<xs:annotation>
<xs:documentation>
<![CDATA[The option if attribute specifices an expression that, when evaluated, selects or deslects the
element for processing.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="xsltAble">
<xs:attribute name="xslt" type="ate:xsltURI" use="optional">
<xs:annotation>
<xs:documentation>
<![CDATA[The xslt attribute is used to indiate an XSLT style sheet which is applied at the end of other processing prior to returning the final result schema.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="xsdAble">
<xs:attribute name="xsd" type="ate:xsdURI" use="optional" default="discover">
<xs:annotation>
<xs:documentation>
<![CDATA[The xsd attribute indicates an XML Schema file used to validate the structure of the resulting schema. The default value is 'discover' which generates a default XML Schema from information in the tag inner content.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="xmlProcessable">
<xs:attributeGroup ref="ate:xsdAble"/>
<xs:attributeGroup ref="ate:xsltAble"/>
</xs:attributeGroup>
<!-- ======================= Define Enumerations ====================== -->
<xs:simpleType name="jobParameterTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="string"/>
<xs:enumeration value="int"/>
<xs:enumeration value="bool"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="joinTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="innerJoin"/>
<xs:enumeration value="leftJoin"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fileWriteOps">
<xs:restriction base="xs:string">
<xs:enumeration value="write"/>
<xs:enumeration value="append"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fileOperationVerb">
<xs:union>
<xs:simpleType>
<xs:restriction base="ate:fileWriteOps"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="read"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="sortDirection">
<xs:restriction base="xs:string">
<xs:enumeration value="ascending"/>
<xs:enumeration value="descending"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="optionEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="AcceptAnyRoomAssignment"/>
<xs:enumeration value="OnlyAcceptUntilFirstDistributedScheduledPeriod"/>
<xs:enumeration value="OnlyAcceptIfMeetingNoModifiedInAstraSchedule"/>
<xs:enumeration value="OnlyAcceptOnInsertOfNewRecord"/>
<xs:enumeration value="CheckForDoubleBooks"/>
<xs:enumeration value="DropRoomAssignment"/>
<xs:enumeration value="OnlyDropRoomAssignmentIfDoubleBooked"/>
<xs:enumeration value="KeepRoomAssignmentAndMarkAsValidDoubleBooked"/>
<xs:enumeration value="CheckForInvalidCrossLists"/>
<xs:enumeration value="ImportArrangedSections"/>
<xs:enumeration value="ForceUpdate"/>
<xs:enumeration value="UseTermEndDatesForSections">
<xs:annotation>
<xs:documentation>
<![CDATA[If true: The Astra term EndDate is used for the section instead of the section EndDate stored in the ATE.]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="PreserveMeetingExceptions">
<xs:annotation>
<xs:documentation>
<![CDATA[If true: Any exceptions or changes to a meeting pattern made in Astra are preserved and not updated with ATE data for the standard meeting pattern.]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="criterionOps">
<xs:restriction base="xs:NCName">
<xs:enumeration value="BitwiseAnd"/>
<xs:enumeration value="BitwiseAnd"/>
<xs:enumeration value="BitwiseOr"/>
<xs:enumeration value="IsEqual"/>
<xs:enumeration value="IsNotEqual"/>
<xs:enumeration value="IsNull"/>
<xs:enumeration value="IsNotNull"/>
<xs:enumeration value="IsBetween"/>
<xs:enumeration value="IsNotBetween"/>
<xs:enumeration value="IsLike"/>
<xs:enumeration value="IsNotLike"/>
<xs:enumeration value="IsAnyOf"/>
<xs:enumeration value="IsNotAnyOf"/>
<xs:enumeration value="IsGreaterThan"/>
<xs:enumeration value="IsGreaterThanOrEqual"/>
<xs:enumeration value="IsLessThan"/>
<xs:enumeration value="IsLessThanOrEqual"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="adapterTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="ODBC"/>
<xs:enumeration value="Oracle"/>
<xs:enumeration value="MsSql"/>
<xs:enumeration value="Astra">
<xs:annotation>
<xs:documentation>
<![CDATA[Runtime selection of an Oracle or MsSql adapter depending on the current Astra configuration. Use to connect to the Astra Database.]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="differencerSisTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="MSSQL"/>
<xs:enumeration value="ODBC"/>
<xs:enumeration value="Oracle"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="webClientProtocol">
<xs:restriction base="xs:string">
<xs:enumeration value="Soap">
<xs:annotation>
<xs:documentation>
<![CDATA[Soap Version 1.1]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Soap12">
<xs:annotation>
<xs:documentation>
<![CDATA[Soap Version 1.2]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="excelVersion">
<xs:restriction base="xs:string">
<xs:enumeration value="Jet">
<xs:annotation>
<xs:documentation>
<![CDATA[Excel 97-2003]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="OpenXml">
<xs:annotation>
<xs:documentation>
<![CDATA[OpenXml Format Excel 2007+]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="excelSheetName">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:NCName"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedInt"/>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:simpleType name="jobType">
<xs:restriction base="xs:string">
<xs:enumeration value="Export"/>
<xs:enumeration value="Import"/>
<xs:enumeration value="Other"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="modes">
<xs:restriction base="xs:string">
<xs:enumeration value="Always"/>
<xs:enumeration value="Batch"/>
<xs:enumeration value="OnDemand"/>
<xs:enumeration value="Realtime"/>
<xs:enumeration value="BatchOrOnDemand"/>
<xs:enumeration value="Bulk">
<xs:annotation>
<xs:documentation>
<![CDATA[Effectively Batch|RealTime - Typically more than 1 record is affected.]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="NonBatch">
<xs:annotation>
<xs:documentation>
<![CDATA[Effectively OnDemand|RealTime - Typically a triggered job.]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<!-- ====================== Define Simple Types ======================= -->
<!-- Define the type for a parameter expansion [*${NCName}*]*-->
<xs:simpleType name="expandable">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:NCName"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string" >
<xs:pattern value="([^($})]*(\$\{[\i-[:]][\c-[:|\}]]*\})[^($})]*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define the type for a Parameterized FTP or File URI-->
<xs:simpleType name="fileURI">
<xs:restriction base="xs:string">
<xs:pattern value="ftp://([^($})]*(\$\{[\i-[:]][\c-[:|\}]]*\})*[^($})]*)*"/>
<xs:pattern value="file://([^($})]*(\$\{[\i-[:]][\c-[:|\}]]*\})*[^($})]*)*"/>
<xs:pattern value="([^($}:)]*(\$\{[\i-[:]][\c-[:|\}]]*\})[^($})]*)*"/>
<xs:pattern value="[^($}:)]*"/>
</xs:restriction>
</xs:simpleType>
<!-- Define the type for an Xslt URI-->
<xs:simpleType name="xsltURI">
<xs:restriction base="xs:anyURI">
<xs:pattern value=".*.xsl[t]*((\?[\i-[:]]+\c*=\c+)((&)[\i-[:=]][^=]*=[^=]+)*)?"/>
<!--<xs:pattern value=".*.xsl[t]*"/>-->
<xs:pattern value="(\$\{[^$\{\}]*\})+((\?((\$\{[^$\{\}]*\})|[\i-[:]])+\c*=((\$\{[^$\{\}]*\})|\c)+)((&)[\i-[:=]][^=]*=[^=]+)*)?"/>
<xs:pattern value="^$"/>
</xs:restriction>
</xs:simpleType>
<!-- Define the type for an Xsd URI-->
<xs:simpleType name="xsdURI">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:anyURI">
<xs:pattern value=".*.xsd"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="discover">
<xs:annotation>
<xs:documentation>
<![CDATA[Generate a default XML Schema from the <Source> definition.]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define the type for a Parameterized URI-->
<xs:simpleType name="apiURI">
<xs:restriction base="xs:string">
<xs:pattern value="https?://([^($})]*(\$\{[\i-[:]][\c-[:|\}]]*\})*[^($})]*)*"/>
<xs:pattern value="([^($}:)]*(\$\{[\i-[:]][\c-[:|\}]]*\})[^($})]*)*"/>
<xs:pattern value="[^($}:)]*"/>
</xs:restriction>
</xs:simpleType>
<!-- Define a type for SQL bind variables -->
<xs:simpleType name="sqlBind">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[@|:].*"/>
<xs:pattern value="([0-9])+(?:\s*|\s*[,;]|\s*[,;]\s*([0-9])*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for String Functions -->
<xs:simpleType name="stringFxs">
<xs:annotation>
<xs:documentation>
<![CDATA[This type definition attempts to restrict entry to some known function signatures. See inline comments below which preceed each regex. Wherever a string parameter is allowed the expression (\@this|[a-z]+\(.+\)|\$\{.+\}) limts content to @this; ${NCName} or something that looks like another function ie: at least one letter followed by open and closed parens. Effectively validation is provided for the outer most function signature is performed allowing for arbitrary nesting of functions.]]>
</xs:documentation>
</xs:annotation>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<!-- ltrim(string); rtrim(string); trim(string) -->
<xs:pattern value="[r|l]?trim\((\@this|[a-z]+\(.+\)|\$\{.+\})\)"/>
<!-- split(string; char; int) -->
<xs:pattern value="split\((\@this|[a-z]+\(.+\)|\$\{.+\}),'.',[1-9]([0-9])?\)"/>
<!-- split(string; int; int) -->
<xs:pattern value="substring\((\@this|[a-z]+\(.+\)|\$\{.+\}),[1-9]([0-9])*,[1-9]([0-9])*\)"/>
<!-- left(string, int); right(string, int)-->
<xs:pattern value="(left|right)\((\@this|[a-z]+\(.+\)|\$\{.+\}),[1-9]([0-9])*\)"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for append.value attribue -->
<xs:simpleType name="appendValueType">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="today()"/>
<xs:enumeration value="now()"/>
<xs:enumeration value="null"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for delimited Lists -->
<xs:simpleType name="delimitedNames">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z]|[A-Z]|_)+([a-z]|[A-Z]|[0-9]|_)+(\s*[,;]\s*([a-z]|[A-Z]|_)+([a-z]|[A-Z]|[0-9]|_)*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for headerRow attributes -->
<xs:simpleType name="headerRowType">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for file parse attributes -->
<xs:simpleType name="fileParse">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value=","/>
<xs:enumeration value="\t">
<xs:annotation>
<xs:documentation>
<![CDATA[Tab]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="|"/>
<xs:enumeration value=";"/>
<xs:enumeration value="\s">
<xs:annotation>
<xs:documentation>
<![CDATA[Any whitespace]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="\n">
<xs:annotation>
<xs:documentation><![CDATA[Newline. Effectively the file uses fixed length field definitions because \n is both the record and column delimiter.]]></xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:normalizedString" />
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for Excel range definitions -->
<xs:simpleType name="excelRange">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([A-Z]|[a-z])([A-Z]|[a-z])?[1-9][0-9]*:([A-Z]|[a-z])([A-Z]|[a-z])?[1-9][0-9]*"/>
<xs:pattern value="([A-Z]|[a-z])([A-Z]|[a-z])?:([A-Z]|[a-z])([A-Z]|[a-z])?"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- ====================== Define Simple Types ======================= -->
<!-- Define the type for a parameter expansion [*${NCName}*]*-->
<xs:simpleType name="expandable">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:NCName"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string" >
<xs:pattern value="([^($})]*(\$\{[\i-[:]][\c-[:|\}]]*\})[^($})]*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define the type for a Parameterized FTP or File URI-->
<xs:simpleType name="fileURI">
<xs:restriction base="xs:string">
<xs:pattern value="ftp://([^($})]*(\$\{[\i-[:]][\c-[:|\}]]*\})*[^($})]*)*"/>
<xs:pattern value="file://([^($})]*(\$\{[\i-[:]][\c-[:|\}]]*\})*[^($})]*)*"/>
<xs:pattern value="([^($}:)]*(\$\{[\i-[:]][\c-[:|\}]]*\})[^($})]*)*"/>
<xs:pattern value="[^($}:)]*"/>
</xs:restriction>
</xs:simpleType>
<!-- Define the type for an Xslt URI-->
<xs:simpleType name="xsltURI">
<xs:restriction base="xs:anyURI">
<xs:pattern value=".*.xsl[t]*((\?[\i-[:]]+\c*=\c+)((&)[\i-[:=]][^=]*=[^=]+)*)?"/>
<!--<xs:pattern value=".*.xsl[t]*"/>-->
<xs:pattern value="(\$\{[^$\{\}]*\})+((\?((\$\{[^$\{\}]*\})|[\i-[:]])+\c*=((\$\{[^$\{\}]*\})|\c)+)((&)[\i-[:=]][^=]*=[^=]+)*)?"/>
<xs:pattern value="^$"/>
</xs:restriction>
</xs:simpleType>
<!-- Define the type for an Xsd URI-->
<xs:simpleType name="xsdURI">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:anyURI">
<xs:pattern value=".*.xsd"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="discover">
<xs:annotation>
<xs:documentation>
<![CDATA[Generate a default XML Schema from the <Source> definition.]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define the type for a Parameterized URI-->
<xs:simpleType name="apiURI">
<xs:restriction base="xs:string">
<xs:pattern value="https?://([^($})]*(\$\{[\i-[:]][\c-[:|\}]]*\})*[^($})]*)*"/>
<xs:pattern value="([^($}:)]*(\$\{[\i-[:]][\c-[:|\}]]*\})[^($})]*)*"/>
<xs:pattern value="[^($}:)]*"/>
</xs:restriction>
</xs:simpleType>
<!-- Define a type for SQL bind variables -->
<xs:simpleType name="sqlBind">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[@|:].*"/>
<xs:pattern value="([0-9])+(?:\s*|\s*[,;]|\s*[,;]\s*([0-9])*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for String Functions -->
<xs:simpleType name="stringFxs">
<xs:annotation>
<xs:documentation>
<![CDATA[This type definition attempts to restrict entry to some known function signatures. See inline comments below which preceed each regex. Wherever a string parameter is allowed the expression (\@this|[a-z]+\(.+\)|\$\{.+\}) limts content to @this; ${NCName} or something that looks like another function ie: at least one letter followed by open and closed parens. Effectively validation is provided for the outer most function signature is performed allowing for arbitrary nesting of functions.]]>
</xs:documentation>
</xs:annotation>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<!-- ltrim(string); rtrim(string); trim(string) -->
<xs:pattern value="[r|l]?trim\((\@this|[a-z]+\(.+\)|\$\{.+\})\)"/>
<!-- split(string; char; int) -->
<xs:pattern value="split\((\@this|[a-z]+\(.+\)|\$\{.+\}),'.',[1-9]([0-9])?\)"/>
<!-- split(string; int; int) -->
<xs:pattern value="substring\((\@this|[a-z]+\(.+\)|\$\{.+\}),[1-9]([0-9])*,[1-9]([0-9])*\)"/>
<!-- left(string, int); right(string, int)-->
<xs:pattern value="(left|right)\((\@this|[a-z]+\(.+\)|\$\{.+\}),[1-9]([0-9])*\)"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for append.value attribue -->
<xs:simpleType name="appendValueType">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="today()"/>
<xs:enumeration value="now()"/>
<xs:enumeration value="null"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for delimited Lists -->
<xs:simpleType name="delimitedNames">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z]|[A-Z]|_)+([a-z]|[A-Z]|[0-9]|_)+(\s*[,;]\s*([a-z]|[A-Z]|_)+([a-z]|[A-Z]|[0-9]|_)*)*"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for headerRow attributes -->
<xs:simpleType name="headerRowType">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for file parse attributes -->
<xs:simpleType name="fileParse">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value=","/>
<xs:enumeration value="\t">
<xs:annotation>
<xs:documentation>
<![CDATA[Tab]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="|"/>
<xs:enumeration value=";"/>
<xs:enumeration value="\s">
<xs:annotation>
<xs:documentation>
<![CDATA[Any whitespace]]>
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="\n">
<xs:annotation>
<xs:documentation><![CDATA[Newline. Effectively the file uses fixed length field definitions because \n is both the record and column delimiter.]]></xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:normalizedString" />
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- Define a type for Excel range definitions -->
<xs:simpleType name="excelRange">
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([A-Z]|[a-z])([A-Z]|[a-z])?[1-9][0-9]*:([A-Z]|[a-z])([A-Z]|[a-z])?[1-9][0-9]*"/>
<xs:pattern value="([A-Z]|[a-z])([A-Z]|[a-z])?:([A-Z]|[a-z])([A-Z]|[a-z])?"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<!-- ====================== Define Complex Types ====================== -->
<xs:complexType name="CommentAble">
<xs:attributeGroup ref="ate:commentableElementAttribs"/>
</xs:complexType>
<xs:complexType name="FXAble">
<xs:attributeGroup ref="ate:commentableElementAttribs"/>
<xs:attribute name="fx" use="optional" type="ate:stringFxs">
<xs:annotation>
<xs:documentation>
<![CDATA[The fx attribute allows for built-in string functions to be applied to the node data prior to returning the final value. Use @this in the function call to reference the node data. Some validation of this attribute uses regular expressions to limit values to known function signatures, alowing unvalidated nesting, and ${NCName} parameter expansion.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="JobParameter" id="JobParameter">
<xs:annotation>
<xs:documentation>
<![CDATA[A <JobParameter> generates a textbox for free form user entry.]]>
</xs:documentation>
</xs:annotation>
<xs:attribute name="caption" use="required">
<xs:annotation>
<xs:documentation>
<![CDATA[The caption attribute defines the label which is generated on the webcontrol.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="ate:namedElementAttribs"></xs:attributeGroup>
<xs:attribute name="captionCssClass" use="optional">
<xs:annotation>
<xs:documentation>
<![CDATA[The captionCssClass attribute allows control styling and positioning of the label through aplication of css.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="contentCssClass" use="optional">
<xs:annotation>
<xs:documentation>
<![CDATA[The contentCssClass attribute allows control styling and positioning of the entry control through aplication of css.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="hidden" type="xs:boolean" use="optional" default="false">
<xs:annotation>
<xs:documentation>
<![CDATA[Indicates the the JobParameter is not configure via the job form.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="expr" use="optional" type="aais:nonEmptyString">
<xs:annotation>
<xs:documentation>
<![CDATA[Expression to evalute for parameter value.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional" type="ate:jobParameterTypes" default="string">
<xs:annotation>
<xs:documentation>
<![CDATA[Type of value.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="JobParmeters" id="JobParameters">
<xs:sequence maxOccurs="unbounded">
<xs:choice>
<xs:element ref="ate:JobParameter" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ate:FileParameter" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ate:ListParameter" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="ate:SystemParameter" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="ate:JobParameterGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ObjectParameter" >
<xs:annotation>
<xs:documentation>
<![CDATA[Use the <ObjectParameter> tag to expose the <AstraObject> property for JobParameter expansion.]]>
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="ate:FXAble">
<xs:attribute name="source" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Parameter" id="Parameter" mixed="false">
<xs:attributeGroup ref="ate:namedElementAttribs"/>
<xs:attribute name="ref" use="required" type="xs:NCName" >
<xs:annotation>
<xs:documentation>
<![CDATA[The ref attribute refers to a the name attribute of a <JobParameter> type element.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="ate:conditionalElement"/>
</xs:complexType>
<xs:complexType name="SqlParameter" mixed="false">
<xs:attributeGroup ref="ate:namedElementAttribs"/>
<xs:attribute name="match" use="optional" type="xs:unsignedInt" default="0">
<xs:annotation>
<xs:documentation>
<![CDATA[Used with regex to identify which match to use.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ref" use="optional" type="xs:NCName" >
<xs:annotation>
<xs:documentation>
<![CDATA[The ref attribute refers to a the name attribute of a <JobParameter> type element.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="regex" use="optional" type="xs:string" default="">
<xs:annotation>
<xs:documentation>
<![CDATA[An optional reqular expression to use for parsing.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="expr" use="optional" type="aais:nonEmptyString">
<xs:annotation>
<xs:documentation>
<![CDATA[Expression to evalute for parameter value.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="emptyStringsAsNull" use="optional" type="aais:logical" default="true">
<xs:annotation>
<xs:documentation>
<![CDATA[Set to true to treat empty bind values as NULL.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sqlBind" use="required" type="ate:sqlBind">
<xs:annotation>
<xs:documentation>
<![CDATA[The sqlBind attribute is used for binding the parameter to a prepared SQL statement. The value must be a parameter name of the form [:|@]* or a number or delimited list of numbers specifying positional binding of ODBC compatibility.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="ate:conditionalElement"/>
</xs:complexType>
<xs:complexType name="Parameters" id="Parameters">
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element ref="ate:Parameter"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="SqlParameters" id="SqlParameters">
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element ref="ate:SqlParameter"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="ParameterizedGroup">
<xs:sequence minOccurs="0">
<xs:element ref="ate:Parameters" maxOccurs="1"/>
</xs:sequence>
<xs:attributeGroup ref="ate:namedElementAttribs" />
</xs:complexType>
<xs:group name="SoapGroup">
<xs:choice>
<xs:any namespace="http://www.w3.org/2003/05/soap-envelope" minOccurs="0" processContents="skip">
<xs:annotation>
<xs:documentation>
<![CDATA[Creates a SOAP 1.2 envelope.]]>
</xs:documentation>
</xs:annotation>
</xs:any>
<xs:any namespace="http://schemas.xmlsoap.org/soap/envelope/" minOccurs="0" processContents="skip">
<xs:annotation>
<xs:documentation>
<![CDATA[Creates a SOAP 1.1 envelope.]]>
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
</xs:group>
<xs:complexType name="WebMethod">
<xs:annotation>
<xs:documentation>
<![CDATA[An <WebMethod> tag creates a DataSet from the result of an SOA service call. Use only with WebEndPoint references.]]>
</xs:documentation>
</xs:annotation>
<xs:group ref="ate:SoapGroup" minOccurs="1" />
<xs:attribute name="protocol" type="ate:webClientProtocol" default="Soap12"/>
</xs:complexType>
<xs:complexType name="SqlBuilder">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="ate:conditionalElement"/>
<xs:attribute name="comment"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ColumnMap">
<xs:annotation>
<xs:documentation>
<![CDATA[The <ColumnMap> defines modifications to the default shape/schema of a contributing source prior to additional processing.]]>
</xs:documentation>
</xs:annotation>
<xs:choice maxOccurs="unbounded">
<xs:element ref="ate:Rename"/>
<xs:element ref="ate:Append"/>
<xs:element ref="ate:Remove"/>
<xs:element ref="ate:Assign"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="Schema">
<xs:annotation>
<xs:documentation>
<![CDATA[The <Schema> tag defines the structure of the output of the data preparation. The inner <Column> tags define which of the columns from the contributing source(s) are present in the resulting records. ]]>
</xs:documentation>
</xs:annotation>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="ate:Column" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="entityName" use="required" type="xs:NCName">
<xs:annotation>
<xs:documentation>
<![CDATA[The entityName attribute provides a name for the resulting schema object(s) created by the transformation. This should be a noun in the singluar form.]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="groupName" use="optional" type="xs:NCName">
<xs:annotation>
<xs:documentation>
<![CDATA[The groupName attribute provides a name for the root node of the schema created by the transformation. This should be the plural form of the noun used for the entityName attribute. If this attribute is missing an 's' is appended to the value of the entityName attribute. ]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
Comments
Please sign in to leave a comment.