home *** CD-ROM | disk | FTP | other *** search
- <?xml version ="1.0"?>
- <!--
- Copyright 2004 The Apache Software Foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
- <!DOCTYPE schema [
- <!-- Patterns -->
- <!ENTITY Identifier "(\p{L}|_|$)(\p{N}|\p{L}|_|$)*">
- <!ENTITY TypeName "&Identifier;(\.&Identifier;)*">
- <!ENTITY WS "\s*">
- <!ENTITY Import "&TypeName;(\.\*)?">
- <!ENTITY ImportList "&Import;(&WS;,&WS;&Import;)*">
- <!ENTITY SetProp "(&Identifier;|\*)">
- <!ENTITY RelativeURL "[^:#/\?]*(:{0,0}|[#/\?].*)">
- <!ENTITY Length "[0-9]*%?">
- <!ENTITY AsciiName "[A-Za-z0-9_-]*">
- <!ENTITY ValidContentType "&AsciiName;/&AsciiName;(;&WS;(charset=)?&AsciiName;)?">
- <!ENTITY ValidPageEncoding "&AsciiName;/&AsciiName;">
- <!ENTITY Buffer "[0-9]+kb">
- <!ENTITY RTexpr "%=.*%">
- ]>
-
-
- <!--Conforms to w3c http://www.w3.org/2001/XMLSchema -->
-
- <xsd:schema
- xmlns = "http://java.sun.com/JSP/Page"
- xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
- xmlns:jsp = "http://java.sun.com/JSP/Page"
- targetNamespace = "http://java.sun.com/JSP/Page"
- elementFormDefault = "qualified"
- attributeFormDefault = "unqualified">
-
- <xsd:annotation>
- <xsd:documentation>
- XML Schema for JSP 2.0.
-
- This schema is based upon the recent (May 5th, 2001)
- W3C recommendation for XML Schema.
-
- A JSP translator should reject an XML-format file that is
- not strictly valid according to this schema or does not observe
- the constraints documented here. A translator is not required
- to use this schema for validation or to use a validating parser.
- </xsd:documentation>
- </xsd:annotation>
-
-
- <!-- Complex Types -->
-
- <xsd:complexType name = "Body">
- <xsd:annotation>
- <xsd:documentation>
- Body defines the "top-level" elements in root and beanInfo.
- There are probably other elements that should use it.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:group ref = "Bodygroup" minOccurs = "0" maxOccurs = "unbounded"/>
- </xsd:complexType>
-
- <!-- groups -->
-
- <xsd:group name = "Bodygroup">
- <xsd:choice>
- <xsd:element ref = "directive.page"/>
- <xsd:element ref = "directive.include"/>
- <xsd:element ref = "scriptlet"/>
- <xsd:element ref = "declaration"/>
- <xsd:element ref = "expression"/>
- <xsd:element ref = "useBean"/>
- <xsd:element ref = "setProperty"/>
- <xsd:element ref = "getProperty"/>
- <xsd:element ref = "include"/>
- <xsd:element ref = "forward"/>
- <xsd:element ref = "plugin"/>
- <xsd:element ref = "text"/>
- <xsd:any namespace="##other" processContents = "lax"/>
- </xsd:choice>
- </xsd:group>
-
-
- <!-- Simple types are next -->
-
- <xsd:simpleType name = "RTE">
- <xsd:annotation>
- <xsd:documentation>
- A request-time expression value
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&RTexpr;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "Bool">
- <xsd:annotation>
- <xsd:documentation>
- Bool would be boolean except it does not accept 1 and 0.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:NMTOKEN" >
- <xsd:enumeration value = "true"/>
- <xsd:enumeration value = "false"/>
- <xsd:enumeration value = "yes"/>
- <xsd:enumeration value = "no"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "Identifier">
- <xsd:annotation>
- <xsd:documentation>
- Identifier is an unqualified Java identifier.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&Identifier;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "TypeName">
- <xsd:annotation>
- <xsd:documentation>
- TypeName is one or more Java identifiers separated by dots
- with no whitespace.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&TypeName;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "ImportList">
- <xsd:annotation>
- <xsd:documentation>
- ImportList is one or more typeNames separated by commas.
- Whitespace is allowed before and after the comma.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&ImportList;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "SetProp">
- <xsd:annotation>
- <xsd:documentation>
- SetProp is an Identifier or *.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&SetProp;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "RelativeURL">
- <xsd:annotation>
- <xsd:documentation>
- RelativeURL is a uriReference with no colon character
- before the first /, ? or #, if any (RFC2396).
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:anyURI">
- <xsd:pattern value = "&RelativeURL;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "RTERelativeURL">
- <xsd:union memberTypes = "RelativeURL RTE"/>
- </xsd:simpleType>
-
- <xsd:simpleType name = "Length">
- <xsd:annotation>
- <xsd:documentation>
- Length is nn or nn%.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&Length;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
-
- <xsd:simpleType name = "ExplicitBufferSize">
- <xsd:annotation>
- <xsd:documentation>
- Buffer Size with an explicit value
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&Buffer;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "NoneBufferSize">
- <xsd:annotation>
- <xsd:documentation>
- Buffer Size with a "none" value
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:enumeration value = "none"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "BufferSize">
- <xsd:annotation>
- <xsd:documentation>
- Buffer size is xkb or none.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:union memberTypes = "ExplicitBufferSize NoneBufferSize"/>
- </xsd:simpleType>
-
- <xsd:simpleType name = "ContentType">
- <xsd:annotation>
- <xsd:documentation>
- Content type and character encoding for this page.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&ValidContentType;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "PageEncoding">
- <xsd:annotation>
- <xsd:documentation>
- Page Encoding for this page.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:string">
- <xsd:pattern value = "&ValidPageEncoding;"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "Scope">
- <xsd:annotation>
- <xsd:documentation>
- valid scope values
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:NMTOKEN">
- <xsd:enumeration value = "page"/>
- <xsd:enumeration value = "session"/>
- <xsd:enumeration value = "request"/>
- <xsd:enumeration value = "application"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "PlugInType">
- <xsd:annotation>
- <xsd:documentation>
- valid values for a plugin type
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:NMTOKEN">
- <xsd:enumeration value = "bean"/>
- <xsd:enumeration value = "applet"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:simpleType name = "AlignType">
- <xsd:annotation>
- <xsd:documentation>
- Buffer size is xkb.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:restriction base = "xsd:NMTOKEN">
- <xsd:enumeration value = "top"/>
- <xsd:enumeration value = "middle"/>
- <xsd:enumeration value = "bottom"/>
- <xsd:enumeration value = "left"/>
- <xsd:enumeration value = "right"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <!-- Elements follow -->
-
- <xsd:element name = "root">
- <xsd:annotation>
- <xsd:documentation>
- The root element of all JSP documents is named root.
-
- Authors may, if they wish, include schema location information.
- If specified, the information may appear as attributes of
- the root element as follows:
-
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/JSP/Page xsd-file-location"
-
- Documents should not specify the system identifier of a DTD
- in a DOCTYPE declaration.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base = "Body">
- <xsd:attribute name = "version" fixed = "2.0" type = "xsd:string"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "directive.page">
- <xsd:annotation>
- <xsd:documentation>
- directive.page is the "page directive".
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name = "language" default = "java" type = "xsd:string"/>
- <xsd:attribute name = "extends" type = "TypeName"/>
- <xsd:attribute name = "contentType" default = "text/html; ISO-8859-1" type = "ContentType"/>
- <xsd:attribute name = "pageEncoding" use = "optional" type = "PageEncoding"/>
- <xsd:attribute name = "import" type = "ImportList"/>
- <xsd:attribute name = "session" default = "true" type = "Bool"/>
- <xsd:attribute name = "buffer" default = "8kb" type = "BufferSize"/>
- <xsd:attribute name = "autoFlush" default = "true" type = "Bool"/>
- <xsd:attribute name = "isThreadSafe" default = "true" type = "Bool"/>
- <xsd:attribute name = "info" type = "xsd:string"/>
- <xsd:attribute name = "errorPage" type = "RelativeURL"/>
- <xsd:attribute name = "isErrorPage" default = "false" type = "Bool"/>
- <xsd:attribute name = "isELIgnored" type = "Bool"/>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "directive.include">
- <xsd:annotation>
- <xsd:documentation>
- directive.include is the "include directive".
- This element does not appear on XML views of JSP pages.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name = "file" use = "required" type = "RelativeURL"/>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "scriptlet" type = "xsd:string">
- <xsd:annotation>
- <xsd:documentation>
- The representation of a scriplet.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:element>
-
- <xsd:element name = "declaration" type = "xsd:string">
- <xsd:annotation>
- <xsd:documentation>
- The reprsentation of a declaration.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:element>
-
- <xsd:element name = "expression" type = "xsd:string">
- <xsd:annotation>
- <xsd:documentation>
- The representation of an expression.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:element>
-
- <xsd:element name = "text" type = "xsd:string">
- <xsd:annotation>
- <xsd:documentation>
- Verbatim template text.
- </xsd:documentation>
- </xsd:annotation>
- </xsd:element>
-
- <xsd:element name = "useBean">
- <xsd:annotation>
- <xsd:documentation>
- useBean instantiates or accesses a bean in the specified scope.
-
- Constraint: The allowed combinations of attributes are:
-
- class [type] | type [( class | beanName)]
-
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:complexContent>
- <xsd:extension base="Body">
- <xsd:attribute name = "id" use = "required" type = "Identifier"/>
- <xsd:attribute name = "class" type = "TypeName"/>
- <xsd:attribute name = "type" type = "TypeName"/>
- <xsd:attribute name = "beanName" type = "TypeName"/>
- <xsd:attribute name = "scope" default = "page" type = "Scope"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "setProperty">
- <xsd:annotation>
- <xsd:documentation>
- setProperty changes the value of an object property.
-
- Constraint: The object named by the name must have been
- "introduced" to the JSP processor using either the
- jsp:useBean action or a custom action with an associated
- VariableInfo entry for this name.
-
- Exact valid combinations are not expressable in XML Schema.
- They are:
-
- name="Identifier" property="*"
- name="Identifier" property="Identfiier" param="string"
- name="Identifier" property="Identifier" value="string"
-
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name = "name" use = "required" type = "Identifier"/>
- <xsd:attribute name = "property" use = "required" type = "SetProp"/>
- <xsd:attribute name = "param" type = "xsd:string"/>
- <xsd:attribute name = "value" type = "xsd:string"/>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "getProperty">
- <xsd:annotation>
- <xsd:documentation>
- getProperty obtains the value of an object property.
-
- Constraint: The object named by the name must have been
- "introduced" to the JSP processor using either the
- jsp:useBean action or a custom action with an associated
- VariableInfo entry for this name.
-
- ???The spec is interpreted as restricting the values of
- property to Identifier.
- </xsd:documentation>
- </xsd:annotation>
- <xsd:complexType>
- <xsd:attribute name = "name" use = "required" type = "Identifier"/>
- <xsd:attribute name = "property" use = "required" type = "Identifier"/>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "include">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref = "param" minOccurs = "0" maxOccurs = "unbounded"/>
- </xsd:sequence>
- <xsd:attribute name = "flush" default = "false" type = "Bool"/>
- <xsd:attribute name = "page" use = "required" type = "RTERelativeURL"/>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "forward">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref = "param" minOccurs = "0" maxOccurs = "unbounded"/>
- </xsd:sequence>
- <xsd:attribute name = "page" use = "required" type = "RTERelativeURL"/>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "plugin">
- <xsd:complexType> <!-- content only! -->
- <xsd:sequence>
- <xsd:element ref = "params" minOccurs = "0" maxOccurs = "1"/>
- <xsd:element name = "fallback" minOccurs = "0" maxOccurs = "1" type = "Body"/>
- </xsd:sequence>
- <xsd:attribute name = "type" use = "required" type = "PlugInType"/>
- <xsd:attribute name = "code" type = "xsd:anyURI"/>
- <xsd:attribute name = "codebase" type = "xsd:anyURI"/>
- <xsd:attribute name = "align" type = "AlignType"/>
- <xsd:attribute name = "archive">
- <xsd:simpleType>
- <xsd:list itemType="xsd:anyURI"/>
- </xsd:simpleType>
- </xsd:attribute>
- <xsd:attribute name = "height" type = "Length"/>
- <xsd:attribute name = "hspace" type = "xsd:int"/>
- <xsd:attribute name = "jreversion" default = "1.2" type = "xsd:string"/>
- <xsd:attribute name = "name" type = "xsd:NMTOKEN"/>
- <xsd:attribute name = "vspace" type = "xsd:int"/>
- <xsd:attribute name = "width" type = "Length"/>
- <xsd:attribute name = "nspluginurl" type = "xsd:anyURI"/>
- <xsd:attribute name = "iepluginurl" type = "xsd:anyURI"/>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "params">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref = "param" minOccurs = "1" maxOccurs = "unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name = "param">
- <xsd:complexType>
- <xsd:attribute name = "name" use = "required" type = "xsd:NMTOKEN"/>
- <xsd:attribute name = "value" use = "required" type = "xsd:string"/>
- </xsd:complexType>
- </xsd:element>
-
- </xsd:schema>
-