blob: 89f95326acb66a3badc02817ca3f386611376f22 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:srv="http://schemas.niku.com/2002/service" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:import namespace="http://schemas.niku.com/2002/service" schemaLocation="service-2002-02.xsd"/>
<xsd:include schemaLocation="common-2003-09.xsd"/>
<xsd:complexType name="metaDataType">
<xsd:attribute name="fileName" type="xsd:string" use="required"/>
<xsd:attribute name="version" type="xsd:string" use="optional" default="old"/>
</xsd:complexType>
<xsd:element name="componentDescriptor">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="web" type="webType" minOccurs="0"/>
<xsd:element name="persistence" type="persistenceType" minOccurs="0"/>
<xsd:element name="objects" type="objectsType" minOccurs="0"/>
<xsd:element name="serverListener" type="serverListenerType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="sessionInitializer" type="sessionInitializerType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="sessionDestroyer" type="sessionDestroyerType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="resourceBundle" type="resourceBundleType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="dataProviders" type="dataProvidersType" minOccurs="0"/>
<xsd:element name="customViews" type="customViewsType" minOccurs="0"/>
<xsd:element name="events" type="eventsType" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">All the eventListeners file for the component</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="persistenceType">
<xsd:sequence>
<xsd:element name="metaData" type="metaDataType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="webType">
<xsd:sequence>
<xsd:element name="metaData" type="metaDataType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="serverListenerType">
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="classname" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="sessionInitializerType">
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="classname" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="sessionDestroyerType">
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="classname" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="propertyType">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="value" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="resourceBundleType">
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="objectsType">
<xsd:sequence>
<xsd:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="objectType">
<xsd:attribute name="code" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
<xsd:pattern value="[a-z,A-Z,0-9,_]+"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="fileName" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="dataProvidersType">
<xsd:sequence>
<xsd:element name="dataProvider" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="srv:retrieveService">
<xsd:attribute name="id" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">A unique identifier for the data provider. This must be unique across all Niku components and must be preserved or migrated from Niku release to release as customers may create Studio portlets based on this id.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="isNewPortletProvider" type="xsd:boolean" default="true">
<xsd:annotation>
<xsd:documentation xml:lang="en">When false, the data provider will not show up on the data provider browse popup window for creation of new portlets</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="viewType">
<xsd:sequence>
<xsd:element name="nls" type="NlsType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="code" type="xsd:string" use="required"/>
<xsd:attribute name="location" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="baseViewType">
<xsd:sequence>
<xsd:element name="view" type="viewType" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="objectCode" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="updateViewType">
<xsd:sequence>
<xsd:element name="view" type="viewType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="nls" type="NlsType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="allowSubPages" type="xsd:boolean" default="true" use="optional"/>
</xsd:complexType>
<xsd:complexType name="propertyViewSetType">
<xsd:sequence>
<xsd:element name="create" type="viewType" minOccurs="0"/>
<xsd:element name="update" type="updateViewType" minOccurs="0"/>
<xsd:element name="nls" type="NlsType" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="objectCode" type="xsd:string" use="required"/>
<xsd:attribute name="partitionCode" type="xsd:string" use="optional" default="NIKU.ROOT">
<xsd:annotation>
<xsd:documentation xml:lang="en">The partitionCode of the view set.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="customViewsType">
<xsd:sequence>
<xsd:element name="listView" type="baseViewType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="propertyView" type="baseViewType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="propertySet" type="propertyViewSetType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="eventsType">
<xsd:annotation>
<xsd:documentation xml:lang="en">The type definition for a list of events the component "owns"</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="event" type="eventType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="eventType">
<xsd:annotation>
<xsd:documentation xml:lang="en">The type definition of a event</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="listener" type="srv:processService" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">A listener that is registered to receive the event when it occurs. Listeners listed here will be invoked in document order. Only xbl types are supported currently.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="code" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation xml:lang="en">The unique identifier of the event. Must be unique across all events in the application.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
</xsd:schema>