blob: c49df109372bcac4481b10b8cf2e3084805358e0 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://schemas.niku.com/2002/web"
xmlns:srv="http://schemas.niku.com/2002/service"
xmlns:sec="http://schemas.niku.com/2002/security"
xmlns="http://schemas.niku.com/2002/web"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- 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: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:enumeration value="evolution3">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Clarity 8.0 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:element name="module">
<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:complexType>
<xsd:sequence id="ModuleSequence">
<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:sequence>
<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:element>
<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:element name="import" type="ImportType" minOccurs="0"
maxOccurs="unbounded" />
<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:element name="portletRef" type="PortletRefType"
minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="portlet" type="PortletType" minOccurs="0"
maxOccurs="unbounded" />
<xsd:element name="pageAction" type="PageActionType"
minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="processActionRef"
type="ProcessActionRefType" minOccurs="0"
maxOccurs="unbounded" />
<xsd:element name="processAction" type="ProcessActionType"
minOccurs="0" maxOccurs="unbounded" />
<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 personalizable Web pages. 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="portal" type="xsd:boolean"
default="false">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Identifies portal pages.
</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: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:element name="viewMode" type="ViewModeType"
minOccurs="0" maxOccurs="unbounded" />
<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="ViewModeType">
<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 WebReadAction and
WebWriteAction.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<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">
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 prior to invoking 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 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.
</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="pageId" type="xsd:string">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Option attribute to give reference to the parent of
the action id. This is loaded if it is not filled
in.
</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 containing page.
</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" maxOccurs="unbounded" />
<xsd:element name="redirectCondition"
type="RedirectConditionType" minOccurs="0"
maxOccurs="unbounded" />
</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">
Fallbackt error action id used if this
request 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
webRedirect element and a list of webParams.
</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 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 redirect URL from data XML
response document or other sources. This attribute
overwrites static action specified for redirect.
Mostly used by personalization engine and portal
framework.
</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"
default="constant">
<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:schema>