Below are the XML schema definition files that make up the SIS XML schema.
File | What it defines |
---|---|
common types used by the SIS schema |
|
conditions used in SIS expressions |
|
string-manipulation functions used in SIS expressions |
|
array-manipulation functions used in SIS expressions |
|
the SIS composition component |
|
the SIS trigger component |
|
the SIS macro component |
|
the SIS interceptor component |
|
SIS datatypes specific to IN |
|
IN extensions to the SIS composition component |
|
IN extensions to the SIS trigger component |
|
IN extensions to the SIS interceptor component |
|
SIS datatypes specific to SIP |
|
SIP extensions to the SIS composition component |
|
SIP extensions to the SIS trigger component |
|
SIP extensions to the SIS interceptor component |
datatypes-1.3.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>
This no-namespace schema is included by the SIS Trigger, Macro, Composition,
and Interceptor schemas. It defines types common to all schemas.
</xs:documentation>
</xs:annotation>
<xs:simpleType name="SignificantName">
<xs:annotation>
<xs:documentation>
These names will have all redundant whitespace stripped, and must contain
at least one non-whitespace character.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:group name="ServiceID">
<xs:sequence>
<xs:element name="service-name" type="SignificantName"/>
<xs:element name="service-vendor" type="SignificantName"/>
<xs:element name="service-version" type="SignificantName"/>
</xs:sequence>
</xs:group>
<xs:group name="TriggerID">
<xs:sequence>
<xs:element name="trigger-name" type="SignificantName"/>
<xs:element name="trigger-vendor" type="SignificantName"/>
<xs:element name="trigger-version" type="SignificantName"/>
</xs:sequence>
</xs:group>
<xs:group name="MacroID">
<xs:sequence>
<xs:element name="macro-name" type="SignificantName"/>
<xs:element name="macro-vendor" type="SignificantName"/>
<xs:element name="macro-version" type="SignificantName"/>
</xs:sequence>
</xs:group>
<xs:group name="CompositionID">
<xs:sequence>
<xs:element name="composition-name" type="SignificantName"/>
<xs:element name="composition-vendor" type="SignificantName"/>
<xs:element name="composition-version" type="SignificantName"/>
</xs:sequence>
</xs:group>
<xs:group name="InterceptorID">
<xs:sequence>
<xs:element name="interceptor-name" type="SignificantName"/>
<xs:element name="interceptor-vendor" type="SignificantName"/>
<xs:element name="interceptor-version" type="SignificantName"/>
</xs:sequence>
</xs:group>
<xs:complexType name="MacroRefType">
<xs:sequence>
<xs:element name="description" minOccurs="0"/>
<xs:group ref="MacroID"/>
<xs:element name="macro-alias" type="SignificantName"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CompositionRefType">
<xs:sequence>
<xs:element name="description" minOccurs="0"/>
<xs:group ref="CompositionID"/>
<xs:element name="composition-alias" type="SignificantName"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TerminateType">
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>
conditions-1.6.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="datatypes-1.3.xsd"/>
<xs:include schemaLocation="string-manipulator-datatypes-1.2.xsd"/>
<xs:include schemaLocation="array-manipulator-datatypes-1.1.xsd"/>
<xs:include schemaLocation="in-sis-datatypes-1.5.xsd"/>
<xs:annotation>
<xs:documentation>
This no-namespace schema is included by the SIS Trigger, Macro and Composition
schemas. It defines conditions that are used in scripts and macros.
</xs:documentation>
</xs:annotation>
<xs:group name="ConditionGroup">
<xs:annotation>
<xs:documentation>
This choice group defines the elements that may be used in a script
where a condition is expected.
</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element ref="true"/>
<xs:element ref="false"/>
<xs:element ref="not"/>
<xs:element ref="and"/>
<xs:element ref="or"/>
<xs:element ref="equal"/>
<xs:element ref="not-equal"/>
<xs:element ref="macro-satisfied"/>
<xs:element ref="assign"/>
<xs:element ref="delete"/>
<xs:element ref="less-than"/>
<xs:element ref="greater-than"/>
<xs:element ref="present"/>
<xs:element ref="string-starts-with"/>
<xs:element ref="string-ends-with"/>
<xs:element ref="string-contains"/>
<xs:element ref="string-matches"/>
</xs:choice>
</xs:group>
<xs:element name="true" type="EmptyType"/>
<xs:element name="false" type="EmptyType"/>
<xs:element name="not" type="ConditionType"/>
<xs:element name="and" type="MultiConditionType"/>
<xs:element name="or" type="MultiConditionType"/>
<xs:element name="equal" type="CompareType"/>
<xs:element name="not-equal" type="CompareType"/>
<xs:element name="less-than" type="CompareType"/>
<xs:element name="greater-than" type="CompareType"/>
<xs:element name="macro-satisfied" type="MacroSatisfiedType"/>
<xs:element name="assign" type="AssignType"/>
<xs:element name="delete" type="DeleteType"/>
<xs:element name="present" type="PresentType"/>
<xs:element name="string-starts-with" type="StringStartsWithType"/>
<xs:element name="string-ends-with" type="StringEndsWithType"/>
<xs:element name="string-contains" type="StringContainsType"/>
<xs:element name="string-matches" type="StringMatchesType"/>
<xs:complexType name="EmptyType"/>
<xs:complexType name="PresentType">
<xs:attribute name="variable" type="SignificantName" use="required"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="CompareType">
<xs:choice minOccurs="0" maxOccurs="2">
<xs:element ref="value"/>
<xs:group ref="StringManipulators"/>
<xs:element name="array-length" type="ArrayLengthType"/>
<xs:group ref="INSISDataTypes"/>
</xs:choice>
<xs:attribute name="a" type="SignificantName" use="optional"/>
<xs:attribute name="b" type="SignificantName" use="optional"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="AssignType">
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element ref="value"/>
<xs:group ref="StringManipulators"/>
<xs:group ref="ArrayManipulators"/>
<xs:group ref="INSISDataTypes"/>
</xs:choice>
<xs:attribute name="toVariable" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="DeleteType">
<xs:attribute name="variable" type="xs:string" use="required"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="MacroSatisfiedType">
<xs:attribute name="macro" type="SignificantName"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ConditionType">
<xs:choice>
<xs:group ref="ConditionGroup"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="MultiConditionType">
<xs:choice maxOccurs="unbounded">
<xs:group ref="ConditionGroup"/>
</xs:choice>
</xs:complexType>
<xs:element name="value">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
string-manipulator-datatypes-1.2.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>
This no-namespace schema is included by the SIS Trigger, Macro and Composition
schemas. It defines types common to all schemas.
</xs:documentation>
</xs:annotation>
<xs:group name="StringManipulators">
<xs:choice>
<xs:element name="string-prepend" type="StringPrependType"/>
<xs:element name="string-append" type="StringAppendType"/>
<xs:element name="string-substring" type="StringSubstringType"/>
<xs:element name="string-length" type="StringLengthType"/>
<xs:element name="string-contains" type="StringContainsType"/>
<xs:element name="string-index-of" type="StringIndexOfType"/>
<xs:element name="string-last-index-of" type="StringLastIndexOfType"/>
<xs:element name="string-starts-with" type="StringStartsWithType"/>
<xs:element name="string-ends-with" type="StringEndsWithType"/>
<xs:element name="string-matches" type="StringMatchesType"/>
</xs:choice>
</xs:group>
<xs:attributeGroup name="source-suffix-attgroup">
<xs:attribute name="source" type="xs:string" use="required"/>
<xs:attribute name="suffix" type="xs:string" use="required"/>
</xs:attributeGroup>
<xs:attributeGroup name="source-prefix-attgroup">
<xs:attribute name="source" type="xs:string" use="required"/>
<xs:attribute name="prefix" type="xs:string" use="required"/>
</xs:attributeGroup>
<xs:attributeGroup name="source-substring-attgroup">
<xs:attribute name="source" type="xs:string" use="required"/>
<xs:attribute name="substring" type="xs:string" use="required"/>
</xs:attributeGroup>
<xs:attributeGroup name="source-substring-begin-index-attgroup">
<xs:attribute name="source" type="xs:string" use="required"/>
<xs:attribute name="substring" type="xs:string" use="required"/>
<xs:attribute name="begin-index" type="xs:string"/>
</xs:attributeGroup>
<xs:complexType name="StringPrependType">
<xs:attributeGroup ref="source-prefix-attgroup"/>
</xs:complexType>
<xs:complexType name="StringAppendType">
<xs:attributeGroup ref="source-suffix-attgroup"/>
</xs:complexType>
<xs:complexType name="StringSubstringType">
<xs:attribute name="source" type="xs:string" use="required"/>
<xs:attribute name="begin-index" type="xs:string" use="required"/>
<xs:attribute name="end-index" type="xs:string"/>
</xs:complexType>
<xs:complexType name="StringLengthType">
<xs:attribute name="source" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="StringContainsType">
<xs:attributeGroup ref="source-substring-attgroup"/>
</xs:complexType>
<xs:complexType name="StringIndexOfType">
<xs:attributeGroup ref="source-substring-begin-index-attgroup"/>
</xs:complexType>
<xs:complexType name="StringLastIndexOfType">
<xs:attributeGroup ref="source-substring-begin-index-attgroup"/>
</xs:complexType>
<xs:complexType name="StringStartsWithType">
<xs:attributeGroup ref="source-prefix-attgroup"/>
<xs:attribute name="begin-index" type="xs:string"/>
</xs:complexType>
<xs:complexType name="StringEndsWithType">
<xs:attributeGroup ref="source-suffix-attgroup"/>
</xs:complexType>
<xs:complexType name="StringMatchesType">
<xs:attribute name="source" type="xs:string" use="required"/>
<xs:attribute name="regex" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
array-manipulator-datatypes-1.1.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="in-sis-datatypes-1.5.xsd"/>
<xs:annotation>
<xs:documentation>
This no-namespace schema is included by the SIS Trigger, Macro and Composition
schemas. It defines types common to all schemas.
</xs:documentation>
</xs:annotation>
<xs:group name="ArrayManipulators">
<xs:choice>
<xs:element name="array-add-element" type="ArrayAddElementType"/>
<xs:element name="array-remove-element" type="ArrayRemoveElementType"/>
<xs:element name="array-length" type="ArrayLengthType"/>
</xs:choice>
</xs:group>
<xs:complexType name="ArrayAddElementType">
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="value">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:group ref="INSISDataTypes"/>
</xs:choice>
<xs:attribute name="array" type="xs:string" use="required"/>
<xs:attribute name="index" type="xs:string" use="optional"/>
<xs:attribute name="value" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ArrayRemoveElementType">
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="value">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:group ref="INSISDataTypes"/>
</xs:choice>
<xs:attribute name="array" type="xs:string" use="required"/>
<xs:attribute name="index" type="xs:string" use="optional"/>
<xs:attribute name="value" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ArrayLengthType">
<xs:attribute name="array" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
sis-composition-1.8.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Composition"
xmlns="http://www.opencloud.com/SIS/Composition"
xmlns:c="http://www.opencloud.com/SIS/Composition">
<xs:include schemaLocation="datatypes-1.3.xsd"/>
<xs:include schemaLocation="conditions-1.6.xsd"/>
<xs:element name="composition" type="CompositionType">
<xs:key name="service-key">
<xs:annotation>
<xs:documentation>
The service-alias element in service-ref must be unique.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="c:service-ref"/>
<xs:field xpath="c:service-alias"/>
</xs:key>
<xs:key name="macro-key">
<xs:annotation>
<xs:documentation>
The macro-alias element in macro-ref must be unique.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="c:macro-ref"/>
<xs:field xpath="c:macro-alias"/>
</xs:key>
<xs:keyref name="macro-keyref" refer="macro-key">
<xs:annotation>
<xs:documentation>
The macro attribute of macro-satisfied must refer to a defined macro alias.
</xs:documentation>
</xs:annotation>
<xs:selector xpath=".//c:macro-satisfied"/>
<xs:field xpath="@macro"/>
</xs:keyref>
</xs:element>
<xs:complexType name="CompositionType">
<xs:sequence>
<xs:element name="description" minOccurs="0"/>
<xs:group ref="CompositionID"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="macro-ref" type="MacroRefType"/>
</xs:choice>
<xs:element ref="script"/>
<xs:element name="debug-level" type="DebugLevelType" minOccurs="0" default="0"/>
<xs:element name="audit" type="xs:boolean" minOccurs="0" default="false"/>
<xs:element name="extension-options" type="ExtensionOptionsType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="script" type="TopLevelScriptBlockType"/>
<xs:simpleType name="DebugLevelType">
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ExtensionOptionsType">
<xs:sequence>
<xs:element name="extension-option" type="ExtensionOptionType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExtensionOptionType">
<xs:sequence>
<xs:any namespace="##any" minOccurs="0" maxOccurs="1" processContents="lax">
<xs:annotation>
<xs:documentation>
Allow a single element inside extension-option. Elements that are known in the schema
will be validated, others will be ignored.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:sequence>
<xs:attribute name="name" use="required"/>
<xs:attribute name="value" use="optional"/>
</xs:complexType>
<xs:complexType name="TopLevelScriptBlockType">
<xs:sequence>
<xs:element name="composition-input-interceptor" type="InterceptorBlockType" minOccurs="0"/>
<xs:group ref="ScriptStatementGroup"/>
<xs:element name="composition-output-interceptor" type="InterceptorBlockType" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:group name="ScriptStatementGroup">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="assign" type="AssignType"/>
<xs:element name="delete" type="DeleteType"/>
<xs:element name="if" type="IfType"/>
<xs:element ref="invoke"/>
<xs:element ref="parallel"/>
</xs:choice>
<xs:element ref="halt" minOccurs="0"/>
</xs:sequence>
</xs:group>
<xs:element name="invoke" type="InvokeServiceType"/>
<xs:complexType name="InvokeServiceType">
<xs:sequence>
<xs:element name="service-input-interceptor" type="InterceptorBlockType" minOccurs="0"/>
<xs:element name="service-output-interceptor" type="InterceptorBlockType" minOccurs="0"/>
<xs:element ref="terminate" minOccurs="0"/>
<xs:element name="message-handling-options" type="MessageHandlingOptionsType" minOccurs="0"/>
<xs:element name="extension-options" type="ExtensionOptionsType" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="service" type="SignificantName"/>
<xs:attribute name="timeout" type="xs:long"/>
<xs:attribute name="on-timeout" type="ServiceTimeoutOptions" default="ignore-service-and-continue"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:element name="terminate" type="TerminateType">
<xs:annotation>
<xs:documentation>
The terminate element can only be used if the parent element's on-timeout attribute equals "terminate-processing".
It specifies an optional termination response to return to the network.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:simpleType name="ServiceTimeoutOptions">
<xs:restriction base="xs:string">
<xs:enumeration value="ignore-service-and-continue"/>
<xs:enumeration value="terminate-processing"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="parallel" type="ParallelBlock"/>
<xs:complexType name="ParallelBlock">
<xs:sequence>
<xs:element name="service-input-interceptor" type="InterceptorBlockType" minOccurs="0"/>
<xs:element name="invoke" type="ParallelInvokeServiceType" maxOccurs="unbounded"/>
<xs:element name="service-output-interceptor" type="InterceptorBlockType" minOccurs="0"/>
<xs:element ref="terminate" minOccurs="0"/>
<xs:element name="message-handling-options" type="MessageHandlingOptionsType" minOccurs="0"/>
<xs:element name="extension-options" type="ExtensionOptionsType" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="timeout" type="xs:long"/>
<xs:attribute name="on-timeout" type="ServiceTimeoutOptions" default="ignore-service-and-continue"/>
</xs:complexType>
<xs:complexType name="ParallelInvokeServiceType">
<xs:complexContent>
<xs:extension base="InvokeServiceType">
<xs:attribute name="primary" type="xs:boolean" default="false"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InterceptorBlockType">
<xs:sequence>
<xs:group ref="InterceptorStatementGroup"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:group name="InterceptorStatementGroup">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="assign" type="AssignType"/>
<xs:element name="delete" type="DeleteType"/>
<xs:element name="if" type="InterceptorIfType"/>
<xs:element ref="invoke-extension"/>
<xs:element ref="invoke-interceptor"/>
</xs:choice>
<xs:element ref="halt" minOccurs="0"/>
</xs:sequence>
</xs:group>
<xs:element name="invoke-extension" type="InvokeInterceptorExtensionType"/>
<xs:complexType name="InvokeInterceptorExtensionType">
<xs:attribute name="extension" type="SignificantName" use="required"/>
<xs:attribute name="timeout" type="xs:long"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:element name="invoke-interceptor" type="InvokeInterceptorType"/>
<xs:complexType name="InvokeInterceptorType">
<xs:attribute name="interceptor" type="SignificantName" use="required"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="InterceptorIfType">
<xs:sequence>
<xs:group ref="ConditionGroup"/>
<xs:element name="then" type="InterceptorBlockType"/>
<xs:element name="else-if" type="InterceptorElseIfType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="else" type="InterceptorBlockType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="InterceptorElseIfType">
<xs:sequence>
<xs:group ref="ConditionGroup"/>
<xs:element name="then" type="InterceptorBlockType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IfType">
<xs:sequence>
<xs:group ref="ConditionGroup"/>
<xs:element name="then" type="NestedScriptBlockType"/>
<xs:element name="else-if" type="ElseIfType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="else" type="NestedScriptBlockType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ElseIfType">
<xs:sequence>
<xs:group ref="ConditionGroup"/>
<xs:element name="then" type="NestedScriptBlockType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NestedScriptBlockType">
<xs:sequence>
<xs:group ref="ScriptStatementGroup"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:element name="halt" type="TerminateType"/>
<xs:complexType name="MessageHandlingOptionsType">
<xs:sequence>
<xs:element ref="message-handling-option" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="message-handling-option" type="MessageHandlingOptionType"/>
<xs:complexType name="MessageHandlingOptionType">
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>
sis-trigger-1.6.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Trigger"
xmlns="http://www.opencloud.com/SIS/Trigger"
xmlns:t="http://www.opencloud.com/SIS/Trigger">
<xs:include schemaLocation="datatypes-1.3.xsd"/>
<xs:include schemaLocation="conditions-1.6.xsd"/>
<xs:element name="trigger">
<xs:complexType>
<xs:sequence>
<xs:element name="description" minOccurs="0"/>
<xs:group ref="TriggerID"/>
<xs:element name="trigger-priority" type="xs:int"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="macro-ref" type="MacroRefType"/>
<xs:element name="composition-ref" type="CompositionRefType"/>
</xs:choice>
<xs:element name="on-condition" type="ConditionType"/>
<xs:element name="select" type="SelectorType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="terminate" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:key name="macro-key">
<xs:annotation>
<xs:documentation>
The macro-alias element in macro-ref must be unique.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="t:macro-ref"/>
<xs:field xpath="t:macro-alias"/>
</xs:key>
<xs:keyref name="macro-keyref" refer="macro-key">
<xs:annotation>
<xs:documentation>
The macro attribute of macro-satisfied must refer to a defined macro alias.
</xs:documentation>
</xs:annotation>
<xs:selector xpath=".//t:macro-satisfied"/>
<xs:field xpath="@macro"/>
</xs:keyref>
<xs:key name="composition-key">
<xs:annotation>
<xs:documentation>
The composition-alias element in composition-ref must be unique.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="t:composition-ref"/>
<xs:field xpath="t:composition-alias"/>
</xs:key>
<xs:keyref name="composition-keyref" refer="composition-key">
<xs:annotation>
<xs:documentation>
The composition-alias-ref element of a select element must refer to a defined composition alias.
</xs:documentation>
</xs:annotation>
<xs:selector xpath=".//t:select"/>
<xs:field xpath="t:composition-alias-ref"/>
</xs:keyref>
</xs:element>
<xs:complexType name="SelectorType">
<xs:annotation>
<xs:documentation>
If the select element contains an extension reference, the SIS implementation will
fire an event to the extension component, using the SCS API to select a composition.
If the select element contains a composition-alias-ref, the SIS implementation
will invoke that composition.
If the select element contains a profile-lookup, the SIS will invoke the
profile lookup method to find a composition.
</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="extension" type="SCSServiceType"/>
<xs:element name="composition-alias-ref" type="SignificantName"/>
<xs:element name="profile-lookup" type="ProfileLookupType"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="SCSServiceType">
<xs:simpleContent>
<xs:extension base="SignificantName">
<xs:attribute name="timeout" type="xs:long"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ProfileLookupType">
<xs:annotation>
<xs:documentation>
This element specifies an implementation-specific method for looking
up a composition using profiles.
</xs:documentation>
</xs:annotation>
<xs:attribute name="scheme" type="SignificantName">
<xs:annotation>
<xs:documentation>
The scheme attribute specifies which type of profile lookup will be performed.
Available schemes must be documented by the SIS implementation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="key" type="SignificantName">
<xs:annotation>
<xs:documentation>
The key attribute specifies the name of a field from the initial request.
The value of this field will be passed to the profile lookup implementation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:element name="terminate" type="TerminateType">
<xs:annotation>
<xs:documentation>
If this terminate element is present in the instance document, the SIS will perform
the implementation-specific composition termination action.
Protocol-specific schemas may replace this element with something more useful,
by defining an element that extends TerminationType and is in the "terminate" substitution group.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>
sis-macro-1.6.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Macro"
xmlns="http://www.opencloud.com/SIS/Macro"
xmlns:m="http://www.opencloud.com/SIS/Macro">
<xs:include schemaLocation="datatypes-1.3.xsd"/>
<xs:include schemaLocation="conditions-1.6.xsd"/>
<xs:element name="macro">
<xs:complexType>
<xs:sequence>
<xs:element name="description" type="xs:string" minOccurs="0"/>
<xs:group ref="MacroID"/>
<xs:element name="macro-ref" type="MacroRefType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="macro-expression" type="ConditionType"/>
</xs:sequence>
</xs:complexType>
<xs:key name="macro-key">
<xs:annotation>
<xs:documentation>
The macro-alias element in macro-ref must be unique.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="m:macro-ref"/>
<xs:field xpath="m:macro-alias"/>
</xs:key>
<xs:keyref name="macro-keyref" refer="macro-key">
<xs:annotation>
<xs:documentation>
The macro attribute of macro-satisfied must refer to a defined macro alias.
</xs:documentation>
</xs:annotation>
<xs:selector xpath=".//m:macro-satisfied"/>
<xs:field xpath="@macro"/>
</xs:keyref>
</xs:element>
</xs:schema>
sis-interceptor-1.2.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Interceptor"
xmlns="http://www.opencloud.com/SIS/Interceptor"
xmlns:i="http://www.opencloud.com/SIS/Interceptor">
<xs:include schemaLocation="conditions-1.6.xsd"/>
<xs:element name="interceptor">
<xs:complexType>
<xs:sequence>
<xs:element name="description" minOccurs="0"/>
<xs:group ref="InterceptorID"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="macro-ref" type="MacroRefType"/>
</xs:choice>
<xs:element name="script" type="InterceptorBlockType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="InterceptorBlockType">
<xs:sequence>
<xs:group ref="InterceptorStatementGroup"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:group name="InterceptorStatementGroup">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="assign" type="AssignType"/>
<xs:element name="delete" type="DeleteType"/>
<xs:element name="if" type="InterceptorIfType"/>
<xs:element ref="invoke-extension"/>
<xs:element ref="invoke-interceptor"/>
</xs:choice>
<xs:element ref="halt" minOccurs="0"/>
</xs:sequence>
</xs:group>
<xs:element name="invoke-extension" type="InvokeInterceptorExtensionType"/>
<xs:complexType name="InvokeInterceptorExtensionType">
<xs:attribute name="extension" type="SignificantName"/>
<xs:attribute name="timeout" type="xs:long"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:element name="invoke-interceptor" type="InvokeInterceptorType"/>
<xs:complexType name="InvokeInterceptorType">
<xs:attribute name="interceptor" type="SignificantName" use="required"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="InterceptorIfType">
<xs:sequence>
<xs:group ref="ConditionGroup"/>
<xs:element name="then" type="InterceptorBlockType"/>
<xs:element name="else-if" type="InterceptorElseIfType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="else" type="InterceptorBlockType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="InterceptorElseIfType">
<xs:sequence>
<xs:group ref="ConditionGroup"/>
<xs:element name="then" type="InterceptorBlockType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="halt" type="TerminateType"/>
</xs:schema>
in-sis-datatypes-1.5.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>
This no-namespace schema is included by the SIS Trigger, Macro and Composition
schemas for IN. It defines IN-specific datatypes.
</xs:documentation>
</xs:annotation>
<xs:group name="INSISDataTypes">
<xs:choice>
<xs:element name="object" type="ObjectType"/>
<xs:element name="array" type="ArrayType"/>
<xs:element name="enum" type="EnumType"/>
<xs:element name="bytes" type="ByteArrayType"/>
<xs:element name="calling-party-number" type="CallingPartyNumberType"/>
<xs:element name="called-party-number" type="CalledPartyNumberType"/>
<xs:element name="called-party-bcd-number" type="CalledPartyBCDNumberType"/>
<xs:element name="redirecting-party-number" type="RedirectingPartyNumberType"/>
<xs:element name="original-called-number" type="OriginalCalledNumberType"/>
<xs:element name="location-number" type="LocationNumberType"/>
<xs:element name="address-string" type="AddressStringType"/>
<xs:element name="cell-global-id" type="CellGlobalIDType"/>
<xs:element name="service-area-id" type="ServiceAreaIDType"/>
<xs:element name="location-area-id" type="LocationAreaIDType"/>
<xs:element name="generic-number" type="GenericNumberType"/>
<xs:element name="imsi" type="IMSIType"/>
</xs:choice>
</xs:group>
<xs:complexType name="ObjectType">
<xs:sequence>
<xs:element name="field" type="FieldType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="class" type="xs:string" use="required"/>
<xs:attribute name="encoded-value" type="xs:string" use="optional"/>
<xs:attribute name="copy-of" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="FieldType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:group ref="INSISDataTypes"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ArrayType">
<xs:sequence>
<xs:element name="element" type="ArrayElement" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="class" type="xs:string" use="required"/>
<xs:attribute name="length" type="xs:string" use="optional"/>
<xs:attribute name="copy-of" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ArrayElement">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:group ref="INSISDataTypes"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="value" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="EnumType">
<xs:attribute name="class" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="CallingPartyNumberType">
<xs:attribute name="nature" type="xs:string" use="required"/>
<xs:attribute name="number-incomplete" type="xs:boolean" use="required"/>
<xs:attribute name="numbering-plan" type="xs:string" use="required"/>
<xs:attribute name="presentation" type="xs:string" use="required"/>
<xs:attribute name="screening" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="CalledPartyNumberType">
<xs:attribute name="nature" type="xs:string" use="required"/>
<xs:attribute name="routing-to-internal-network-number" type="INNRoutingType" use="required"/>
<xs:attribute name="numbering-plan" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="CalledPartyBCDNumberType">
<xs:attribute name="number-type" type="xs:string" use="required"/>
<xs:attribute name="numbering-plan" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="RedirectingPartyNumberType">
<xs:attribute name="nature" type="xs:string" use="required"/>
<xs:attribute name="numbering-plan" type="xs:string" use="required"/>
<xs:attribute name="presentation" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="OriginalCalledNumberType">
<xs:attribute name="nature" type="xs:string" use="required"/>
<xs:attribute name="numbering-plan" type="xs:string" use="required"/>
<xs:attribute name="presentation" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="LocationNumberType">
<xs:attribute name="nature" type="xs:string" use="required"/>
<xs:attribute name="routing-to-internal-network-number" type="INNRoutingType" use="required"/>
<xs:attribute name="numbering-plan" type="xs:string" use="required"/>
<xs:attribute name="presentation" type="xs:string" use="required"/>
<xs:attribute name="screening" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="AddressStringType">
<xs:attribute name="nature" type="xs:string" use="required"/>
<xs:attribute name="numbering-plan" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="CellGlobalIDType">
<xs:attribute name="mobile-country-code" type="xs:string" use="required"/>
<xs:attribute name="mobile-network-code" type="xs:string" use="required"/>
<xs:attribute name="location-area-code" type="xs:string" use="required"/>
<xs:attribute name="cell-id" type="xs:string" use="required"/>
<xs:attribute name="mobile-country-code-codec" type="CodecType" use="optional"/>
<xs:attribute name="mobile-network-code-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="ServiceAreaIDType">
<xs:attribute name="mobile-country-code" type="xs:string" use="required"/>
<xs:attribute name="mobile-network-code" type="xs:string" use="required"/>
<xs:attribute name="location-area-code" type="xs:string" use="required"/>
<xs:attribute name="service-area-code" type="xs:string" use="required"/>
<xs:attribute name="mobile-country-code-codec" type="CodecType" use="optional"/>
<xs:attribute name="mobile-network-code-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="LocationAreaIDType">
<xs:attribute name="mobile-country-code" type="xs:string" use="required"/>
<xs:attribute name="mobile-network-code" type="xs:string" use="required"/>
<xs:attribute name="location-area-code" type="xs:string" use="required"/>
<xs:attribute name="mobile-country-code-codec" type="CodecType" use="optional"/>
<xs:attribute name="mobile-network-code-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="GenericNumberType">
<xs:attribute name="number-qualifier" type="xs:string" use="required"/>
<xs:attribute name="number-incomplete" type="xs:boolean" use="required"/>
<xs:attribute name="nature" type="xs:string" use="required"/>
<xs:attribute name="numbering-plan" type="xs:string" use="required"/>
<xs:attribute name="presentation" type="xs:string" use="required"/>
<xs:attribute name="screening" type="xs:string" use="required"/>
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="IMSIType">
<xs:attribute name="address" type="xs:string" use="required"/>
<xs:attribute name="address-codec" type="CodecType" use="optional"/>
</xs:complexType>
<xs:complexType name="ByteArrayType">
<xs:attribute name="bytes" type="xs:string" use="required"/>
</xs:complexType>
<xs:simpleType name="CodecType">
<xs:restriction base="xs:string">
<xs:enumeration value="standard"/>
<xs:enumeration value="hex"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="INNRoutingType">
<xs:restriction base="xs:string">
<xs:enumeration value="ALLOWED"/>
<xs:enumeration value="NOT_ALLOWED"/>
</xs:restriction>
</xs:simpleType>
<!-- Types used in IN fail type extensions -->
<xs:simpleType name="DialogTerminationType">
<xs:restriction base="xs:string">
<xs:enumeration value="none"/>
<xs:enumeration value="close"/>
<xs:enumeration value="user-abort"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="UserErrorType">
<xs:attribute name="reason" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="unexpected-data-value"/>
<xs:enumeration value="missing-parameter"/>
<xs:enumeration value="missing-customer-record"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dialog-termination" type="DialogTerminationType" use="required"/>
</xs:complexType>
<xs:complexType name="RedirectType">
<xs:attribute name="idd-prefix" type="xs:string" use="required"/>
<xs:attribute name="country-code" type="xs:string" use="required"/>
<xs:attribute name="redirect-prefix" type="xs:string" use="required"/>
<xs:attribute name="dialog-termination" type="DialogTerminationType" use="required"/>
</xs:complexType>
<xs:complexType name="ContinueType">
<xs:attribute name="dialog-termination" type="DialogTerminationType" use="required"/>
</xs:complexType>
<xs:complexType name="ConnectType">
<xs:sequence>
<xs:element name="called-party-number" type="CalledPartyNumberType"/>
</xs:sequence>
<xs:attribute name="dialog-termination" type="DialogTerminationType" use="required"/>
</xs:complexType>
<xs:complexType name="ConnectSMSType">
<xs:sequence>
<xs:element name="called-party-bcd-number" type="CalledPartyBCDNumberType"/>
</xs:sequence>
<xs:attribute name="dialog-termination" type="DialogTerminationType" use="required"/>
</xs:complexType>
<xs:complexType name="ReleaseType">
<xs:attribute name="cause-code" type="xs:string" use="required"/>
<xs:attribute name="dialog-termination" type="DialogTerminationType" use="required"/>
</xs:complexType>
<xs:complexType name="NoResponseType">
<xs:attribute name="dialog-termination" type="DialogTerminationType" use="required"/>
</xs:complexType>
</xs:schema>
in-sis-composition-1.8.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Composition/IN"
xmlns="http://www.opencloud.com/SIS/Composition/IN"
xmlns:sis="http://www.opencloud.com/SIS/Composition"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opencloud.com/SIS/Composition sis-composition-1.8.xsd">
<xs:include schemaLocation="datatypes-1.3.xsd"/>
<xs:include schemaLocation="in-sis-datatypes-1.5.xsd"/>
<xs:import namespace="http://www.opencloud.com/SIS/Composition" schemaLocation="sis-composition-1.8.xsd"/>
<xs:element name="composition" substitutionGroup="sis:composition" type="INComposition">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:composition element.
It extends the generic element with IN-specific settings.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="INComposition">
<xs:complexContent>
<xs:extension base="sis:CompositionType">
<xs:sequence>
<xs:element name="optimisations-enabled" type="xs:boolean" minOccurs="0" default="false"/>
<xs:element name="fci-interaction" type="FCIInteractionType" minOccurs="0"/>
<xs:element name="online-charging-interaction" type="OnlineChargingInteractionType" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="FCIInteractionType">
<xs:attribute name="mode" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="static-service-priorities"/>
<xs:enumeration value="nominated-service"/>
<xs:enumeration value="concatenation"/>
<xs:enumeration value="pass-through"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- service attribute only present if mode="nominated-service" -->
<xs:attribute name="service" type="SignificantName" use="optional"/>
</xs:complexType>
<xs:complexType name="OnlineChargingInteractionType">
<xs:attribute name="mode" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="static-service-priorities"/>
<xs:enumeration value="nominated-service"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<!-- service attribute only present if mode="nominated-service" -->
<xs:attribute name="service" type="SignificantName" use="optional"/>
</xs:complexType>
<xs:element name="halt" substitutionGroup="sis:halt" type="INTerminateType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:halt element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="terminate" substitutionGroup="sis:terminate" type="INTerminateType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:terminate element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="INTerminateType">
<xs:annotation>
<xs:documentation>
Extends the generic sis:TerminateType type with IN-specific elements and attributes.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="sis:TerminateType">
<xs:choice minOccurs="0">
<xs:element name="user-error" type="UserErrorType"/>
<xs:element name="redirect" type="RedirectType"/>
<xs:element name="continue" type="ContinueType"/>
<xs:element name="connect" type="ConnectType"/>
<xs:element name="connect-sms" type="ConnectSMSType"/>
<xs:element name="release" type="ReleaseType"/>
<xs:element name="relay" type="RelayType"/>
<xs:element name="no-response" type="NoResponseType"/>
</xs:choice>
<xs:attribute name="record-as-reject" type="xs:boolean" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RelayType">
<xs:sequence>
<xs:element name="on-failure" type="INTerminateType"/>
</xs:sequence>
<xs:attribute name="target" type="xs:string" use="required"/>
</xs:complexType>
<xs:element name="message-handling-option" substitutionGroup="sis:message-handling-option" type="INMessageHandlingOptionType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:invoke element.
In extends the generic element with IN-specific settings.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="INMessageHandlingOptionType">
<xs:complexContent>
<xs:extension base="sis:MessageHandlingOptionType">
<xs:sequence>
<xs:element ref="terminate" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="on-message" type="xs:string" use="required"/>
<xs:attribute name="action" type="xs:string" use="required"/>
<xs:attribute name="is-failure" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
in-sis-trigger-1.6.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Trigger/IN"
xmlns="http://www.opencloud.com/SIS/Trigger/IN"
xmlns:sis="http://www.opencloud.com/SIS/Trigger"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opencloud.com/SIS/Trigger sis-trigger-1.6.xsd">
<xs:include schemaLocation="in-sis-datatypes-1.5.xsd"/>
<xs:import namespace="http://www.opencloud.com/SIS/Trigger" schemaLocation="sis-trigger-1.6.xsd"/>
<xs:element name="terminate" substitutionGroup="sis:terminate" type="INTerminateType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:terminate element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="INTerminateType">
<xs:annotation>
<xs:documentation>
Extends the generic sis:TerminateType type with IN-specific elements and attributes.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="sis:TerminateType">
<xs:choice minOccurs="0">
<xs:element name="user-error" type="UserErrorType"/>
<xs:element name="redirect" type="RedirectType"/>
<xs:element name="continue" type="ContinueType"/>
<xs:element name="connect" type="ConnectType"/>
<xs:element name="connect-sms" type="ConnectSMSType"/>
<xs:element name="release" type="ReleaseType"/>
<xs:element name="relay" type="RelayType"/>
<xs:element name="no-response" type="NoResponseType"/>
</xs:choice>
<xs:attribute name="record-as-reject" type="xs:boolean" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RelayType">
<xs:sequence>
<xs:element name="on-failure" type="INTerminateType"/>
</xs:sequence>
<xs:attribute name="target" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
in-sis-interceptor-1.2.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Interceptor/IN"
xmlns="http://www.opencloud.com/SIS/Interceptor/IN"
xmlns:sis="http://www.opencloud.com/SIS/Interceptor"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opencloud.com/SIS/Interceptor sis-interceptor-1.2.xsd">
<xs:include schemaLocation="in-sis-datatypes-1.5.xsd"/>
<xs:import namespace="http://www.opencloud.com/SIS/Interceptor" schemaLocation="sis-interceptor-1.2.xsd"/>
<xs:element name="halt" substitutionGroup="sis:halt" type="INTerminateType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:halt element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="INTerminateType">
<xs:annotation>
<xs:documentation>
Extends the generic sis:TerminateType type with IN-specific elements and attributes.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="sis:TerminateType">
<xs:choice minOccurs="0">
<xs:element name="user-error" type="UserErrorType"/>
<xs:element name="redirect" type="RedirectType"/>
<xs:element name="continue" type="ContinueType"/>
<xs:element name="connect" type="ConnectType"/>
<xs:element name="connect-sms" type="ConnectSMSType"/>
<xs:element name="release" type="ReleaseType"/>
<xs:element name="relay" type="RelayType"/>
<xs:element name="no-response" type="NoResponseType"/>
</xs:choice>
<xs:attribute name="record-as-reject" type="xs:boolean" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RelayType">
<xs:sequence>
<xs:element name="on-failure" type="INTerminateType"/>
</xs:sequence>
<xs:attribute name="target" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
sip-sis-datatypes-1.0.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>
This no-namespace schema is included by the SIS Trigger, Macro and Composition
schemas for SIP. It defines SIP-specific datatypes.
</xs:documentation>
</xs:annotation>
<xs:complexType name="RejectType">
<xs:sequence>
<xs:element name="header" type="HeaderType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="status-code" type="xs:string" use="required"/>
<xs:attribute name="reason-phrase" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ForwardType">
<xs:sequence>
<xs:element name="header" type="HeaderType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="uri" type="xs:string" use="optional"/>
<xs:attribute name="proxy-to" type="xs:string" use="optional"/>
</xs:complexType>
<xs:simpleType name="SipErrorStatusCodeType">
<xs:restriction base="xs:int">
<xs:minInclusive value="300"/>
<xs:maxInclusive value="699"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SipURIType">
<xs:annotation>
<xs:documentation>Matches sip/sips/tel URIs</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="([sS][iI][pP][sS]?|[tT][eE][lL]):.+"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="HeaderType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:schema>
sip-sis-composition-1.8.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Composition/SIP"
xmlns="http://www.opencloud.com/SIS/Composition/SIP"
xmlns:sis="http://www.opencloud.com/SIS/Composition"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opencloud.com/SIS/Composition sis-composition-1.8.xsd">
<xs:include schemaLocation="sip-sis-datatypes-1.0.xsd"/>
<xs:import namespace="http://www.opencloud.com/SIS/Composition" schemaLocation="sis-composition-1.8.xsd"/>
<xs:element name="halt" substitutionGroup="sis:halt" type="SipTerminateType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:halt element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="terminate" substitutionGroup="sis:terminate" type="SipTerminateType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:terminate element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="SipTerminateType">
<xs:annotation>
<xs:documentation>
Extends the generic sis:TerminateType type with SIP-specific elements and attributes.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="sis:TerminateType">
<xs:choice>
<xs:element ref="reject"/>
<xs:element ref="forward"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="reject" type="RejectType"/>
<xs:element name="forward" type="ForwardType"/>
</xs:schema>
sip-sis-trigger-1.6.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Trigger/SIP"
xmlns="http://www.opencloud.com/SIS/Trigger/SIP"
xmlns:sis="http://www.opencloud.com/SIS/Trigger"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opencloud.com/SIS/Trigger sis-trigger-1.6.xsd">
<xs:include schemaLocation="sip-sis-datatypes-1.0.xsd"/>
<xs:import namespace="http://www.opencloud.com/SIS/Trigger" schemaLocation="sis-trigger-1.6.xsd"/>
<xs:element name="terminate" substitutionGroup="sis:terminate" type="SipTerminateType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:terminate element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="SipTerminateType">
<xs:annotation>
<xs:documentation>
Extends the generic sis:TerminateType type with SIP-specific elements and attributes.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="sis:TerminateType">
<xs:choice>
<xs:element name="reject" type="RejectType"/>
<xs:element name="forward" type="ForwardType"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
sip-sis-interceptor-1.2.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.opencloud.com/SIS/Interceptor/SIP"
xmlns="http://www.opencloud.com/SIS/Interceptor/SIP"
xmlns:sis="http://www.opencloud.com/SIS/Interceptor"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opencloud.com/SIS/Interceptor sis-interceptor-1.2.xsd">
<xs:include schemaLocation="sip-sis-datatypes-1.0.xsd"/>
<xs:import namespace="http://www.opencloud.com/SIS/Interceptor" schemaLocation="sis-interceptor-1.2.xsd"/>
<xs:element name="halt" substitutionGroup="sis:halt" type="SipTerminateType">
<xs:annotation>
<xs:documentation>
This element can be substituted for the sis:halt element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="SipTerminateType">
<xs:annotation>
<xs:documentation>
Extends the generic sis:TerminateType type with SIP-specific elements and attributes.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="sis:TerminateType">
<xs:choice>
<xs:element name="reject" type="RejectType"/>
<xs:element name="forward" type="ForwardType"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>