| <?xml version="1.0" encoding="UTF-8"?> |
| <xsd:schema targetNamespace="http://schemas.niku.com/2002/service" xmlns="http://schemas.niku.com/2002/service" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
| <xsd:simpleType name="typeType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="xbl"/> |
| <xsd:enumeration value="pmd"/> |
| <xsd:enumeration value="wsil"/> |
| <xsd:enumeration value="xmlFile"/> |
| <xsd:enumeration value="java"/> |
| <xsd:enumeration value="data"/> |
| <xsd:enumeration value="xsl"/> |
| <xsd:enumeration value="rss"/> |
| <xsd:enumeration value="htmlData"/> |
| <xsd:enumeration value="nsql"/> |
| <xsd:enumeration value="odf"/> |
| <xsd:enumeration value="odfUpdate"/> |
| <xsd:enumeration value="odfDelete"/> |
| <xsd:enumeration value="jbl"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="stateType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="init"/> |
| <xsd:enumeration value="put"/> |
| <xsd:enumeration value="get"/> |
| <xsd:enumeration value="getMergePut"/> |
| <xsd:enumeration value="merge"/> |
| <xsd:enumeration value="clear"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="transactionType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="none"/> |
| <xsd:enumeration value="dbTransaction"/> |
| <xsd:enumeration value="userTransaction"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="XSDType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"/> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:any minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="type" type="xsd:string" use="optional"/> |
| </xsd:complexType> |
| <xsd:complexType name="service" abstract="true"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"/> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="bindings" type="BindingsType" minOccurs="0"/> |
| <xsd:element name="caches" type="CachesType" minOccurs="0"/> |
| <xsd:element name="sessionHandler" type="SessionHandlerType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="request" type="XSDType" minOccurs="0" maxOccurs="1"/> |
| <xsd:element name="response" type="XSDType" minOccurs="0" maxOccurs="1"/> |
| </xsd:sequence> |
| <xsd:attribute name="xsd" type="xsd:string" use="optional"/> |
| <xsd:attribute name="type" type="typeType" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"> |
| Identifies the type of namespace being used for this description, e.g. |
| xbl - Niku's XBL files |
| pmd - Niku's PMD files |
| wsil - W3C's WSIL files |
| xmlFile - xml file located on the harddrive |
| java - java class supporting ServiceControlBinding interface |
| data - take the input XML, validate it and then return it to the client. |
| xsl - transform the input XML via the supplied XSL |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="componentId" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">ComponentId of the service.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="description" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Location of the description XML file.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="validation" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Location of the Data Validation XML file used for complex field validation.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="dynamicValidation" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"/> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="resource" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Location of any resource bundles that should be used by the service.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="sessionKey" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Unique session identifier used to retreive the state information for the service.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="sessionId" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Deprecated. Use sessionKey.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="state" type="stateType" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"> |
| Specifies the session state for the services that require state information to persist across multiple service calls. |
| init - is the default state and has no interaction with the cache whatsoever. |
| put - Places the input document within the cache prior to any service processing. |
| get - Retrieves the cached document from the cache and merges it (the body section only, NOT the header section ) into the input document. Again prior to any service processing. |
| getMergePut - Retrieves the cached document from the cache and merges it (the body section only, NOT the header section ) into the input document and then places the new version |
| of the document back into the cache. Again prior to any service processing. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="retrieveService"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"> |
| This is used for services that retrieve XML. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="service"> |
| <xsd:attribute name="transaction" type="transactionType" use="optional" default="none"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"> |
| Specifies the transaction state for the services that require transactions. |
| none - no transaction is required. |
| dbTransaction - database transaction is required, e.g. set autoCommit = false on a JDBC connection. |
| userTransaction - JTA/JTS UserTransaction is required. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="processService"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"> |
| This is used for services that process XML. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="service"> |
| <xsd:attribute name="transaction" type="transactionType" use="optional" default="dbTransaction"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"> |
| Specifies the transaction state for the services that require transactions. |
| none - no transaction is required. |
| dbTransaction - database transaction is required, e.g. set autoCommit = false on a JDBC connection. |
| userTransaction - JTA/JTS UserTransaction is required. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="BindingsType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a list of service bindings.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="binding" type="BindingType" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType name="BindingType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a reference to the service binding.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="location" type="xsd:string"/> |
| <xsd:attribute name="componentId" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">The component in which the binding file is located. If not specified, it will default to the componentId of the service</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="CachesType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a list of caches that should be cleared after the service has been executed.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="cache" type="CacheType" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType name="CacheType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies a cache or a specific element in a cache to be cleared. If netiher cacheKey nor cacheKeyLocation is specified all caches will be cleared. The location attributes are XPath expressions that point to a Node Set in the output document of the service call.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="cacheKey" type="xsd:string" use="optional"/> |
| <xsd:attribute name="cacheKeyLocation" type="xsd:string" use="optional"/> |
| <xsd:attribute name="key" type="xsd:string" use="optional"/> |
| <xsd:attribute name="keyLocation" type="xsd:string" use="optional"/> |
| </xsd:complexType> |
| <xsd:complexType name="SessionHandlerType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"></xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="state" type="stateType" use="required"/> |
| <xsd:attribute name="select" type="xsd:string" use="optional"/> |
| <xsd:attribute name="test" type="xsd:string" use="optional"/> |
| <xsd:attribute name="default" type="xsd:boolean" use="optional"/> |
| </xsd:complexType> |
| </xsd:schema> |