| <?xml version="1.0" encoding="UTF-8"?> |
| <xsd:schema targetNamespace="http://schemas.niku.com/2002/web" xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
| xmlns="http://schemas.niku.com/2002/web" xmlns:sec="http://schemas.niku.com/2002/security" |
| xmlns:srv="http://schemas.niku.com/2002/service" xmlns:xi="http://www.w3.org/2001/XInclude" |
| elementFormDefault="qualified"> |
| <!-- import XInclude schema --> |
| <xsd:import namespace="http://www.w3.org/2001/XInclude" schemaLocation="xinclude.xsd"/> |
| <!-- Import security policy schema --> |
| <xsd:import namespace="http://schemas.niku.com/2002/security" schemaLocation="security-2002-02.xsd"/> |
| <!-- Import service schema --> |
| <xsd:import namespace="http://schemas.niku.com/2002/service" schemaLocation="service-2002-02.xsd"/> |
| <xsd:element name="module" type="moduleType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Web module is a collection of Web page elements that define the component's Web |
| site. Each application component defines a set of web pages for the application module in a separate WMD XML |
| file located under the src/META-INF/component/wmd directory. All web pages should be grouped into separate WMD |
| XML files or web modules based on features. WMD XML files use embedded XML elements from Security XML schema |
| (security-2002-02.xsd) for specifying security restrictions, and XInclude element for XML InfoSet reuse. In |
| order to use elements from external XML schemas, the appropriate XML namespaces (xmlns:sec and xmlns:xi) should |
| be specified for the root element of the instance document to ensure that the structure of WMD XML document can |
| be properly validated. The WMD XML schema location should also be specified in the instance document. WMD XML |
| instance documents located in union should use the following WMD XML schema location declaration: |
| xsi:schemaLocation="http://schemas.niku.com/2002/web ../xsd/web-2002-02.xsd". All other components should use |
| the following WMD XML schema location declaration: xsi:schemaLocation="http://schemas.niku.com/2002/web |
| ../../union/xsd/web-2002-02.xsd".</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="moduleType"> |
| <xsd:choice maxOccurs="unbounded"> |
| <xsd:element ref="xi:include" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="moduleRef" type="ModuleRefType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="page" type="PageType" maxOccurs="unbounded"/> |
| <xsd:element name="processAction" type="ProcessActionType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="portlet" type="PortletType" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:choice> |
| <xsd:attribute name="schemaLocation" type="xsd:string" use="optional"/> |
| <xsd:attribute name="id" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines web module id to reference web modules from other modules via moduleRef |
| element. Module id attribute value should be unique for the whole web application. This attribute must use |
| component’s name prefix to avoid name collisions. Module id is used by the moduleRef element to importing all |
| web modules for the component into one WMD XML file and registering it for the component in |
| properties.xml</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="feature" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a web module feature id to classify web modules and contained pages |
| into application features. If page space attribute is not defined, module feature id will be used insted to |
| relate a page to the corrsponding application feature. This attribute must use component’s name prefix to |
| avoid name collisions, and normally defines a link to the entry page for the whole |
| feature.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="ModuleRefType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Complex type for referencing and including other web modules via module id. This |
| element is a part of the future enhancements for WMD XML. Its purpose is to replace component descriptor file |
| and to allow registering of a single WMD XML file for the component in properties.xml. The registred WMD XML |
| file will use moduleRef to import all other WMD XML files for the component. Similar solution could be achieved |
| with XInclude.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="id" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Unique module id for the whole Web application. Component namespace should be |
| used for this identifier to avoid name collissions.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="PageType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Page element contains all the information about a web page required to retrieve |
| or produce page content and display the page. This includes page and process web actions for the page, optional |
| list of imported web resources (e.g. CSS and JavaScript), portlets, security restrictions, and services |
| associated with the portlets or the whole page, in case of process action and POST requests.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence id="PageSequence"> |
| <xsd:choice id="IncludeChoice" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:element ref="xi:include" minOccurs="0"/> |
| <xsd:element name="import" type="ImportType" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:choice> |
| <xsd:choice id="PagePolicyChoice" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:element ref="xi:include" minOccurs="0"/> |
| <xsd:element ref="sec:policy" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="sec:condition" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="sec:acl" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:choice> |
| <xsd:choice id="PortletChoice" maxOccurs="unbounded"> |
| <xsd:element ref="xi:include" minOccurs="0"/> |
| <xsd:element name="portletRef" type="PortletRefType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="portlet" type="PortletType" maxOccurs="unbounded"/> |
| </xsd:choice> |
| <xsd:element name="pageAction" type="PageActionType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:choice id="ProcessActionChoice" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:element ref="xi:include" minOccurs="0"/> |
| <xsd:element name="processActionRef" type="ProcessActionRefType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="processAction" type="ProcessActionType" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:choice> |
| <xsd:element name="paramSet" type="ParamSetType" minOccurs="0"/> |
| </xsd:sequence> |
| <xsd:attribute name="id" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Page id attribute value should be unique for a component. This attribute must |
| use component’s name prefix followed by a dot and the actual unique component page id to avoid name |
| collisions. For example, union.testPage contains component’s name followed by unique page id for the |
| component. Page id is used for caching web page metadata, and linking a web page to the corresponding |
| context-sensitive help topic.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="title" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional page title dynamically set for customized pages. This attribute should |
| not be defined in static WMD XML files because this metadata is not localized! Runtime only page |
| property.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="componentId" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Component id is an optional attribute that specifies id of the component to |
| which a web page belongs. If not specified, the system will populate this value during initialization based on |
| information specified in config/properties.xml file and the corresponding component descriptor XML file. Valid |
| component id is a value of id attribute from one of the component elements specified in config/properties.xml. |
| Component id is used to construct the file paths and navigate component directory structure for locating web |
| resources (all component-specific XML files used by WMD).</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="help" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Help is an optional attribute to specify an alternative context-sensitive help |
| topic for the web page. By default page id is used to locate the corresponding context-sensitive help topic. |
| In cases when multiple Web pages use the same help topic, help attribute with the name of the help topic |
| should be used instead. This attribute should also use component prefix to avoid name |
| collisions.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="space" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Identifies the space/module to which this web page belongs. When this attribute |
| is specified and the header or left navigation used for the page contains an action element with |
| actionId=space, the corresponding space will be highlighted when the page is displayed.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="authenticate" type="xsd:boolean" default="true"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies whether or not user authentication is required prior to displaying |
| this page. The default authenticate attribute value is true, meaning that authentication is required for all |
| web pages by default. Therefore, there is no need to set authenticate=”true” explicitly. An attempt to |
| navigate to such web page without proper login will always result in a redirect to the login web page. |
| If the authenticate attribute is explicitly set to false, certain web pages can be exposed to external users |
| bypassing the proper login procedure. Marketplace web pages fall into this category.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="personalize" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Identifies whether or not a Web page is personalizable. All portlets for a |
| personalized Web page are processed by the PortletPersonalizer, and portlets are oredered and displayed based |
| on the user preferrences.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="pageType" default="page" type="pageTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Pages are categorized into different types as specified by the type attribute. |
| This information is used by the PortletController. Page templates are abstract pages that other pages |
| reference via the template atribute for including standard portlets in a page, such as header, footer and left |
| navigation. Page layers represent page tabs. All page layers must use the same page template, and include a |
| reusable tabs portlet, but can use different page layouts.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="instanceType" type="xsd:string" default="SYSTEM"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Pages may be of specific types, these are only set from the |
| database</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="parent" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional parent page reference attribute to specify the parent/container page |
| for a page layer (tab). This attribute is required for all page layers, and ignored for other page |
| types.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="pageBuilder" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies Web page builder class responsible for content preparation. Page |
| builder produces final page content by: 1) storing portlet content in the content map if layout template is |
| defined, and forwarding the request with the content map to the corresponding template, or 2) it can directly |
| produce the final page content via aggregation of portlet content and other UI properties.There is no need to |
| specify pageBuilder attribute for the page element explicitly because only one page builder (JSPPageBuilder) |
| is available at this time for NDE. Moreover, not specifying it keeps the migration options open when client |
| side XML transformations will be integrated into the application.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="serializer" type="xsd:string" use="optional" default="html"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the content output serializer for this request as defined in |
| properties.xml.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="template" type="xsd:string" use="optional" default="union.appPage"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional attribute to specify alternative page template for the Web page. Page |
| template defines standard portlet collection to be used for page rendering. Standard page portlets are: |
| header, footer and left navigation. The available page templates are: union.appPage, union.adminPage, |
| union.popup . Each page template includes different header and/or left navigation for rendering a page. The |
| default value references page template common for all application pages. Administration pages and popups need |
| to explicitly specify the appropriate page template reference.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="layout" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional attribute to specify alternative page layout template for the Web |
| page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="skin" use="optional" type="skinTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional attribute to assign an alternative skin or UI Look and Feel to be used |
| for rendering content of the whole web page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:element name="portlet" type="PortletType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Global portlet element for defining reusable portlets in separate WMD XML files |
| and importing them with XInclude.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="PortletType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a single portlet for the web page and represents a visible section of the |
| rendered page. Portlet can contain security restrictions to evaluate for the view, a list of import elements for |
| including web resources, and different attributes for personalization, content aggregation, caching, and |
| security.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence id="PortletSequence"> |
| <xsd:element name="import" type="ImportType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:choice id="PortletPolicyChoice" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:element ref="xi:include" minOccurs="0"/> |
| <xsd:element ref="sec:acl" minOccurs="0"/> |
| <xsd:element ref="sec:condition" minOccurs="0"/> |
| <xsd:element ref="sec:policy" minOccurs="0"/> |
| <xsd:element name="viewMode" type="ViewModeTypes" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:choice> |
| <xsd:element name="retrieveService" type="RetrieveServiceType" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="schemaLocation" type="xsd:string" use="optional"/> |
| <xsd:attribute name="id" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Portlet id is a unique portlet identifier for the whole web application. As |
| with the page id, component namespace should be used for this identifier to avoid name collisions. Portlet id |
| is used as part of the key to cache portlet content and associate portlets with retrieve services for each web |
| page action.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="instanceId" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Portlet instance id used by page personalization features to display mulitple |
| instances of the same portlet on a single page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="instanceType" type="xsd:string" default="SYSTEM"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Portlet instance type used by page personalization |
| features.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="templateId" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Portlet template id defines portlet instance id of the system page portlet from |
| which this portlet instance was created.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="componentId" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Component id is required for reusable portlets and specifies the component name |
| in which the portlet is defined. It is used to construct the location path for view XSL file and rendering |
| portlet content.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="title" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional portlet title dynamically set for portlets included by a user for |
| personalized pages. This attribute should not be defined in static WMD XML files because this metadata is not |
| localized! Runtime only portlet property.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="collection" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional portlet collection name to specify for custom page templates and JSP |
| tags to layout and agregate portlet content. For most pages and existing page templates porltetType, col, and |
| row attributes should be used to classify portlets and define their position on the page. Portlet collections |
| are only for the remaining 1% of the pages that require custom layout. All custom page templates should still |
| be defined in webroot/WEB-INF/union/templates directory in union for easy maintenance.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="portletType" default="body" type="portletTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Portlets are categorized into different types as specified by the type |
| attribute. This information is used by the page layout manager during content aggregation and allows changing |
| web page layout for the whole application by modifying only page layout template code (JSP or XSLT). |
| Additional standard portlet types could be identified in the future and added to this |
| list.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="viewType" default="vxsl" type="viewTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">The portlet may process data using a VXSL, or the data may be a VXML, or even |
| straight HTML</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="view" type="xsd:string" use="optional" default=""> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Relative location of the view XML or XSLT template used to generate view XML |
| from data XML received as a result of the service call for the portlet. View XML and XSL files are located |
| under /src/META-INF/component/vxsl directory. Each portlet must use a separate view XSL template. Static |
| portlets that don’t display dynamic data can reference view XML file directly via the view attribute. This |
| allows bypassing the data XML transformation with view XSL when the content of a portlet contains only |
| presentation elements.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="ui" type="xsd:string" default="view"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional name of the UI XSLT template to specify alternative UI XSLT used for |
| transforming view XML content of the portlet into web agent specific markup format, such as XHTML or SVG. This |
| attribute should be specified only in rare occasions when custom UI XSLT templates are used. The default and |
| most common top-level UI XSLT template used for most of the portlets in NDE is called “view”. It includes |
| other UI XSLT templates for rendering such common UI widgets as buttons, links, toolbars, tabs, list tables, |
| attribute tables, and trees. View is the default UI XSL template and it does not need to be specified |
| explicitly.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="col" default="1" type="colTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">The row and col attributes can be used to specify a position of the body type |
| portlet content for a rendered web page. All layout managers use grid layout with rows and columns to position |
| the content of body type portlets during content aggregation. The default values for row and col portlet |
| attributes are 0 (first row) and 1(second column – center column). All portlets should be listed as children |
| of a page in an increasing order of their assigned row and column. Portlets are layed out on the page in at |
| most 3 columns, where each column represents a separate stack or a bucket. If no row is assigned, portlets are |
| laid out in the order they are listed in web metadata and according to their column assignments. Column |
| indexes start with 0, with 1 being the default wide center column. Web page layout template is responsible for |
| spanning the content of portlets if the number of portlet columns is less than 3.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="row" type="xsd:integer" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">The row and col attributes can be used to specify a position of the body type |
| portlet content for a rendered web page. All layout managers use grid layout with rows and columns to position |
| the content of body type portlets during content aggregation. The default values for row and col portlet |
| attributes are 0 (first row) and 1(second column – center column). All portlets should be listed as children |
| of a page in an increasing order of their assigned row and column. Portlets are layed out on the page in at |
| most 3 columns, where each column represents a separate stack or a bucket. If no row is assigned, portlets are |
| laid out in the order they are listed in web metadata and according to their column assignments. Column |
| indexes start with 0, with 1 being the default wide center column. Web page layout template is responsible for |
| spanning the content of portlets if the number of portlet columns is less than 3.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="narrow" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Denotes wheter or not this portlet can be placed in the narrow (left or right) |
| column of the Web page grid layout.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="span" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Denotes whether or not the content of the first portlet for the web page should |
| span across the whole page horizontally, ignoring multiple column grid layout for the |
| page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="required" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Denotes a required portlet for a Web page. The content of required portlet is |
| always displayed independent of user preferences for a personalized page. This can be used for building |
| personalized pages for companies that require their employees to read company news feeds.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="default" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Denotes a default portlet for a Web page. The content of default portlet is |
| displayed initially for a personalized web page, prior or until a user modifies personal settings. As such, |
| this portlet will be displayed when a user first hits the personal page, but the portlet is not required and |
| can be removed by changing personal settings for the page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="pageEvents" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Denotes a portlet that contains page level events defined in view XML. Such |
| portlet view XML is queried with XPath to retrieve and transform declared page events. Page events, such as |
| onLoad, are then passed to page template to be included in page body tag.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="pageToolbar" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Denotes a portlet that contains page level toolbar defined in view XML. Such |
| portlet view XML is queried with XPath to retrieve and transform declared page toolbar links. Rendered page |
| toolbar that normally contains Personalize or Customize links will be included in the page title section of |
| the rendered page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="state" default="normal" type="stateTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines portlet state for the portlet window.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="cacheable" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Determines whether or not the portlet content can be |
| cached.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="scope" default="request" type="scopeTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Determines the scope for the portlet content caching mechanism. The available |
| scopes are: application scope - portlet content with application scope is cached based on the user locale. The |
| content is generated only once and doesn’t expire. Application level cache is cleared only upon application |
| restart or refresh of the application settings. Session session – portlet content with the session scope is |
| cached based on the user session id and locale. Any portlet content that requires user right checking in |
| addition to locale sensitivity should use this setting. Session level cache is cleared whenever user session |
| expires or when a user logs off. Request scope – portlet content with the request scope is cached based on the |
| user locale and expiration time setting. This content is cached for a single request based on the action id |
| and is used for all users with the same locale. Note that content with session or user specific information |
| should not use request scope caching.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="expires" type="xsd:long" default="0"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines expiration time in seconds for the portlet content cached in request |
| scope. The default value (0) identifies time sensitive content that can't be cached.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="policyId" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies security policy id to check user entitlement information for viewing |
| the content of this portlet. This is a reference to one of the security restriction elements defined for a web |
| page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="ViewModeTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a portlet view mode. The supported portlet view modes are: edit, max and |
| admin. Other modes can be defined. Portlet definition itself difines the default display mode (normal). View |
| modes define actions to use for portlet management, such as portlet customization and administration. The WMD |
| processor looksup view modes to generate proper links for portlet Edit and Customize links in the portlet title |
| bar.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="modeType" use="required" type="modeTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies portlet view mode type: edit, admin, max etc.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="action" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the link for the portlet view mode type for portlet management and |
| customization.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="ActionType"> |
| <xsd:annotation> |
| <xsd:documentation>Abstract type used for defining PageAction and ProcessAction.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="id" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Unique action identifier that maps HTTP GET and POST actions via the predefined |
| "action" parameter to this web action. It is used to locate and invoke a processAction or a pageAction, and |
| render the web page and its content. The value for this attribute should use component namespace to avoid name |
| collisions.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="authenticate" type="xsd:boolean" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies whether or not user authentication is required to invoke this |
| action.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="alias" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Unique action identifier alias that maps HTTP GET and POST actions via the |
| predefined "action" parameter to this web action. It is used to locate and invoke a processAction or a |
| pageAction, and render the web page and its content. The value for this attribute should use component |
| namespace to avoid name collisions.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="componentId" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies id of the component for this action. If not specified, the system |
| will populate this value during initialization based on information specified in properties.xml file and the |
| corresponding component descriptor XML file. Valid component id is a value of id attribute from one of the |
| component elements specified in properties.xml. Component id is used to construct the file paths and navigate |
| component directory structure for locating web resources (all component-specific XML files used by |
| WMD).</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="active" type="xsd:boolean" use="optional" default="true"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Active flag for marking enabled/disabled actions. Requesting a page or a |
| process action with an action id whose active flag is set to false will result in an error page that notifies |
| an end-user that the action or page has been temporarly disabled. The error page is Service Unavailable with |
| the http error code 503.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="policyId" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies security policy id to check user entitlement information for invoking |
| this web action. This is a reference to one of the web security restriction elements defined for a web |
| page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="binding" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Optional location of the binding file for HTTP to XML marshalling. If not |
| specified, the default generated binding file with that name that matches action id is used. Binding files are |
| located under /src/META-INF/component/bind directory.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="useSsl" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Deprecated. Use ssl attribute instead.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="ssl" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Denotes wether or not to use SSL for the data transmission that is the result |
| of this action.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="compress" type="xsd:boolean" default="true"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Denotes wether to use gzip for the data transmission that is the result of this |
| action.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="inheritParamSet" type="xsd:boolean" use="optional" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies whether to inherit the paramset defined for the process |
| action.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="PageActionType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Page action is used to trigger the display of a web page. Normally, a page action |
| is a result of HTTP GET request that triggers multiple service calls, one per each portlet, to retrieve content |
| for each portlet. Each web page must contain at least one page action that will trigger loading of a web page. |
| To request a page action via HTTP GET request, its id attribute must match the value of reserved HTTP parameter |
| (“action”).</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="ActionType"> |
| <xsd:sequence id="ActionSequence"> |
| <xsd:element name="portlet" type="PortletType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="retrieveService" type="RetrieveServiceType" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RetrieveServiceType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the service to call that will generate content for a portlet when page |
| action is triggered. Retrieve service is linked to the corresponding portlet via portlet id. Page action might |
| have one or more retrieve services.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="srv:retrieveService"> |
| <xsd:attribute name="portletId" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Unique portlet identifier that links this service to one of the portlets |
| defined for a web page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessActionType"> |
| <xsd:annotation> |
| <xsd:documentation>Defines a web action that submits page data to the backend and modifies the underlying data |
| store in any way. Processing of a process action doesn't result in a web page display, and is always followed by |
| processing of the next web page action. Process actions should be used for all requests that perform insert, |
| update, or delete operations on the data store or modify the data store in any other way. Process action element |
| contains additional attributes for performing such operations. Next action attribute specifies the action id of |
| the next page action to process, to trigger loading of a confirmation web page upon successful completion of the |
| update operation. Error action attribute specifies the action id of the next page action to process, to trigger |
| loading of the appropriate error page if the operation fails. Most of the time, this will be an action id of the |
| page action used to display a web page from which the information is posted to perform an update. This will |
| trigger redisplay, or refresh of the page with the error message displayed, and erroneous information fields |
| marked on the page.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="ActionType"> |
| <xsd:sequence id="ProcessActionSequence"> |
| <xsd:element name="processService" type="ProcessServiceType"/> |
| <xsd:element name="redirectCondition" type="RedirectConditionType" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="paramSet" type="ParamSetType" minOccurs="0"/> |
| </xsd:sequence> |
| <xsd:attribute name="nextAction" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Next page action id to invoke that triggers rendering of the response web |
| page.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="errorAction" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Fallback error action id used if the request processing |
| fails.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="redirect" type="xsd:boolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Determines whether or not a redirect is required after this web action has |
| been processed. In case of redirect=true, the nextAction attribute value will be appended to the redirect |
| url to specify what web action will be invoked next. If additional parameters are required for the |
| redirect url, they can be specified via an optional paramSet element and a list of |
| params.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="dynamicErrorAction" type="xsd:string"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessServiceType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the type and description of a service to call that will process an |
| update operation for a process action and further request redirect or forward. The resulting output is used as |
| an input for the next or error page action in case of request forwarding. When redirect is used, additional |
| redirect URL parameters can be specified via paramSet element. The redirect parameters can query the original |
| HTTP request or the output of the process service with XPath.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="srv:processService"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:complexType name="RedirectConditionType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a redirect condition evaluated by action controller prior to request |
| forwarding or redirect. Redirect conditions are optional and are evaluated only when the process action redirect |
| attribute is set to true. If no redirect conditions are specified, depending on the status of process action |
| executaion, the request will be redirected or forwarded to the next or error action.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence id="RedirectConditionSequence"> |
| <xsd:element name="paramSet" type="ParamSetType" minOccurs="0"/> |
| </xsd:sequence> |
| <xsd:attribute name="inheritParamSet" type="xsd:boolean" use="optional" default="false"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies whether to inherit the paramset defined for the process |
| action.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="source" type="sourceTypes" use="optional" default="response"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the source from which the expression matching parameter and |
| destination URL is retreived.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="parameter" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the parameter name to use for expression matching, if the source is |
| other than the response data XML document.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="expression" type="xsd:string" use="optional" default="."> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Regular expression or an XPath expression for redirect condition. The XPath |
| expression is used to query process action data XML response document, if the source attribute is set to |
| response. Otherwise, the reqular expression matching is used on the specified source parameter value to |
| determine a match.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="action" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Action id of the next action to execute if the redirect condition is met. This |
| is used as a fallback action if destination expresssion parsing fails.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="destination" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">XPath expression or parameter name for the redirect condition to retrieve |
| dynamic redirect URL from data XML response document or other sources. This attribute overwrites static action |
| specified for redirect.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="destinationAction" type="xsd:string" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">XPath expression or parameter name for the redirect condition to retrieve |
| redirect action from data XML response document or other sources. This attribute overwrites static action |
| specified for redirect.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:simpleType name="sourceTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the source from which the parameter value is retreived: request - http |
| request, or response - service call response.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="constant"/> |
| <xsd:enumeration value="request"/> |
| <xsd:enumeration value="response"/> |
| <xsd:enumeration value="xml"/> |
| <xsd:enumeration value="session"/> |
| <xsd:enumeration value="cookie"/> |
| <xsd:enumeration value="header"/> |
| <xsd:enumeration value="config"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:complexType name="ParamSetType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a list parameters to be used for constructing a redirect url query string |
| when performing a redirect for a web action to another web page.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element name="param" type="ParamType" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:complexType name="ParamType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a single parameter for a redirect URL query string. If source=”request”, |
| the HTTP request parameter name specified in the value attribute will be used to retrieve the parameter value. |
| If source=”response”, the XPath expression specified in the value attribute will be used to retrieve the |
| parameter value from data XML response of the process action service call.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="name" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the parameter name.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="source" type="sourceTypes" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies the source from which the parameter value is |
| retreived.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="value" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Specifies how the value of the parameter is retrieved. If source=request, the |
| name of the http parameter needs to be specified in the value attribute. If source=response, the value |
| parameter will be an XPath expression to query the service response XML for the parameter |
| value.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="ImportType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Defines a web resource to include during content aggregation. Different web pages |
| depending on their content and features require different web resources to be included. Typically, web resources |
| represent external files that are used to render page content and provide additional presentation styles and |
| client-side dynamic behavior for a page. Currently, such web resources include CSS and JavaScript files from UI |
| toolkit. Web page builder or a page layout manager will generate a proper reference to the imported web resource |
| file from UI toolkit based on the resource name as the specified by the href attribute, its type attribute, and |
| the UI skin assigned to a web page.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="href" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">The name of the web resource to import.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="type" use="optional" default="js" type="importTypes"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Identifies web resource type: js - JavaScript, css - CSS |
| file.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <!-- Element Reference Types for reuse --> |
| <xsd:complexType name="PortletRefType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Complex type for referensing reusable portlets that are standalone or defined in |
| other web pages. This element is part of the future enhancements for WMD and is not supported yet. This solution |
| will require less memory at runtime when WMD XML files are loaded and cached for request |
| processing.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="id" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Unique portlet id for the whole Web application. Component namespace should be |
| used for this identifier to avoid name collissions. Portlet id is used as part of the key to cache portlet |
| content and to associate portlets with retreive services for each web page action.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| <xsd:complexType name="ProcessActionRefType"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Complex type for referensing reusable process actions that are standalone or |
| defined in other WMD XML files. This element is part of the future enhancements for the WMD and is not supported |
| yet. Its purpose is to replace existing XInclude solution. This solution will require less memory at runtime |
| when WMD XML files are loaded and cached for request processing.</xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="id" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Unique process action id for the whole Web application. Component namespace |
| should be used for this identifier to avoid name collissions.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:simpleType name="pageTypes"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="template"/> |
| <xsd:enumeration value="page"/> |
| <xsd:enumeration value="layer"/> |
| <xsd:enumeration value="container"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:simpleType name="skinTypes"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="evolution1"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Niku 6.1.x UI look and feel with 2001 view XML.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration value="evolution2"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en">Niku 6.1.x UI look and feel with 2002 view XML.</xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="portletTypes"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="header"/> |
| <xsd:enumeration value="footer"/> |
| <xsd:enumeration value="toc"/> |
| <xsd:enumeration value="tabs"/> |
| <xsd:enumeration value="body"/> |
| <xsd:enumeration value="pageContext"/> |
| <xsd:enumeration value="pageToolbar"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="viewTypes"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="vxsl"/> |
| <xsd:enumeration value="vxml"/> |
| <xsd:enumeration value="html"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="colTypes"> |
| <xsd:restriction base="xsd:integer"> |
| <xsd:enumeration value="0"/> |
| <xsd:enumeration value="1"/> |
| <xsd:enumeration value="2"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="stateTypes"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="normal"/> |
| <xsd:enumeration value="minimized"/> |
| <xsd:enumeration value="maximized"/> |
| <xsd:enumeration value="hidden"/> |
| <xsd:enumeration value="inactive"/> |
| <xsd:enumeration value="fullscreen"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="scopeTypes"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="request"/> |
| <xsd:enumeration value="session"/> |
| <xsd:enumeration value="application"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="modeTypes"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="edit"/> |
| <xsd:enumeration value="admin"/> |
| <xsd:enumeration value="max"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="importTypes"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="js"/> |
| <xsd:enumeration value="css"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:schema> |