jakarta-servletapi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eduar...@apache.org
Subject cvs commit: jakarta-servletapi-4/src/share/dtd jspxml.xsd
Date Fri, 27 Jul 2001 23:45:24 GMT
eduardop    01/07/27 16:45:23

  Modified:    src/share/dtd jspxml.xsd
  Log:
  Converted the descripton for XML syntax to the final version of the XML Schema spec
  
  Note that this description is *not* normative, and it is included only as documentation
  
  Revision  Changes    Path
  1.6       +523 -361  jakarta-servletapi-4/src/share/dtd/jspxml.xsd
  
  Index: jspxml.xsd
  ===================================================================
  RCS file: /home/cvs/jakarta-servletapi-4/src/share/dtd/jspxml.xsd,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- jspxml.xsd	2001/04/27 16:57:47	1.5
  +++ jspxml.xsd	2001/07/27 23:45:23	1.6
  @@ -1,367 +1,529 @@
   <?xml version ="1.0"?>
   <!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]*&#x25;?">
  -<!ENTITY AsciiName      "[A-Za-z0-9_-]*">
  -<!ENTITY ContentType    "&AsciiName;/&AsciiName;(;&WS;(encoding=)?&AsciiName;)?">
  -<!ENTITY Buffer         "[0-9]+kb">
  +<!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]*&#x25;?">
  +<!ENTITY AsciiName    "[A-Za-z0-9_-]*">
  +<!ENTITY ValidContentType  "&AsciiName;/&AsciiName;(;&WS;(charset=)?&AsciiName;)?">
  +<!ENTITY ValidPageEncoding  "&AsciiName;/&AsciiName;">
  +<!ENTITY Buffer     "[0-9]+kb">
  +<!ENTITY RTexpr     "&#x25;=.*&#x25;">
   ]>
   
  -<!--Conforms to w3c http://www.w3.org/1999/XMLSchema draft of 7 April 2000-->
   
  -<schema xmlns = "http://www.w3.org/1999/XMLSchema"
  -        xmlns:jsp = "http://java.sun.com/JSP/Page"
  -        targetNamespace = "http://java.sun.com/xschema/jsp_1_2.xsd"
  -        elementFormDefault = "qualified"
  -        attributeFormDefault = "unqualified">
  -
  -    <annotation>
  -        <documentation>
  -            XML Schema for JSP 1.2.
  -            Contributed 00/7/22 Bob Foster, WebGain.
  -            
  -            Note: All patterns tested with ActiveState Perl
  -            5.6.0.616-MSWin32. (\p{L}|_) form is used instead
  -            of equivalent [\p{L}_] because when tested \p{L}
  -            didn't work inside []. Tested patterns were
  -            copied to schema eliminating ^ and $ at start
  -            and end and replacing \$ with $.
  -
  -            Suggested status of schema:
  -            
  -            This schema is based upon the 7 April 2000 final draft of the
  -            w3c XMLSchema working group (http://www.w3.org/XML/Schema).
  -            XMLSchema is still a work in progress and the schema may
  -            need to be updated to reflect later versions.
  -            
  -            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, to use a validating parser
  -            or even to be namespace-aware.
  -        </documentation>
  -    </annotation>
  -
  -    <complexType name = "Body" content = "mixed">
  -        <annotation>
  -            <documentation>
  -                Body defines the "top-level" elements in root and beanInfo.
  -            </documentation>
  -        </annotation>
  -        <group ref = "Bodygroup" minOccurs = "0" maxOccurs = "unbounded"/>
  -    </complexType>
  -
  -    <group name = "Bodygroup">
  -        <choice>
  -            <element ref = "directive.page"/>
  -            <element ref = "directive.include"/>
  -            <element ref = "scriptlet"/>
  -            <element ref = "declaration"/>
  -            <element ref = "expression"/>
  -            <element ref = "useBean"/>
  -            <element ref = "setProperty"/>
  -            <element ref = "getProperty"/>
  -            <element ref = "include"/>
  -            <element ref = "forward"/>
  -            <element ref = "plugin"/>
  -            <element ref = "text"/>
  -        </choice>
  -    </group>
  -
  -    <simpleType name = "Bool" base = "NMTOKEN">
  -        <annotation>
  -            <documentation>
  -                Bool would be boolean except it does not accept 1 and 0.
  -            </documentation>
  -        </annotation>
  -        <enumeration value = "true"/>
  -        <enumeration value = "false"/>
  -        <enumeration value = "yes"/>
  -        <enumeration value = "no"/>
  -    </simpleType>
  -
  -    <simpleType name = "Identifier" base = "string">
  -        <annotation>
  -            <documentation>
  -                Identifier is an unqualified Java identifier.
  -            </documentation>
  -        </annotation>
  -        <pattern value = "&Identifier;"/>
  -    </simpleType>
  -    
  -    <simpleType name = "TypeName" base = "string">
  -        <annotation>
  -            <documentation>
  -                TypeName is one or more Java identifiers separated by dots
  -                with no whitespace.
  -            </documentation>
  -        </annotation>
  -        <pattern value = "&TypeName;"/>
  -    </simpleType>
  -    
  -    <simpleType name = "ImportList" base = "string">
  -        <annotation>
  -            <documentation>
  -                ImportList is one or more typeNames separated by commas.
  -                Whitespace is allowed before and after the comma.
  -            </documentation>
  -        </annotation>
  -        <pattern value = "&ImportList;"/>
  -    </simpleType>
  -    
  -    <simpleType name = "SetProp" base = "string">
  -        <annotation>
  -            <documentation>
  -                SetProp is an Identifier or *.
  -            </documentation>
  -        </annotation>
  -        <pattern value = "&SetProp;"/>
  -    </simpleType>
  -    
  -    <simpleType name = "RelativeURL" base = "uriReference">
  -        <annotation>
  -            <documentation>
  -                RelativeURL is a uriReference with no colon character
  -                before the first /, ? or #, if any (RFC2396).
  -            </documentation>
  -        </annotation>
  -        <pattern value = "&RelativeURL;"/>
  -    </simpleType>
  -
  -    <simpleType name = "Length" base = "string">
  -        <annotation>
  -            <documentation>
  -                Length is nn or nn%.
  -            </documentation>
  -        </annotation>
  -        <pattern value = "&Length;"/>
  -    </simpleType>
  -    
  -    <element name = "root" type = "Body">
  -        <annotation>
  -            <documentation>
  -                The root element of all JSP documents is named root.
  -                
  -                In a document, root must be used as:
  -                
  -                    &lt;jsp:root xmlns:jsp="jsp-1.2-schema-namespace-identifier">
  -                    ...
  -                    &lt;/jsp:root>
  -                
  -                In other words, the namespace prefix "jsp:" must be explicitly
  -                specified for all JSP-defined elements. This allows both
  -                Schema-validating parsers and parsers that are not
  -                namespace-aware to operate properly.
  -
  -                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/1999/XMLSchema-instance"
  -                    xsi:schemaLocation="jsp-1.2-schema-namespace-identifier
  -                                        jsp-1.2-schema-xsd-file-location"
  -
  -                Documents that are intended to be schema-valid should not
  -                specify the system identifier of a DTD in a DOCTYPE declaration.
  -                (The JSP DTD exports no general entities and is not conditional
  -                on any parameter entities.)
  -            </documentation>
  -        </annotation>
  -	<attribute name = "root" use = "required" type = "string"/>
  -    </element>
  -    
  -    <element name = "directive.page">
  -        <annotation>
  -            <documentation>
  -                directive.page is the "page directive".
  -            </documentation>
  -        </annotation>
  -        <complexType content = "empty">
  -            <attribute name = "language" use = "default" value = "java" type = "string"/>
  -            <attribute name = "extends" type = "TypeName"/>
  -            <attribute name = "contentType" use = "default" value = "text/html; ISO-8859-1">
  -                <simpleType base = "string">
  -                    <pattern value = "&ContentType;"/>
  -                </simpleType>
  -            </attribute>
  -            <attribute name = "import" type = "ImportList"/>
  -            <attribute name = "session" use = "default" value = "true" type = "Bool"/>
  -            <attribute name = "buffer" use = "default" value = "8kb">
  -                <simpleType base = "string">
  -                    <pattern value = "&Buffer;"/>
  -                </simpleType>
  -            </attribute>
  -            <attribute name = "autoFlush" use = "default" value = "true" type = "Bool"/>
  -            <attribute name = "isThreadSafe" use = "default" value = "true" type = "Bool"/>
  -            <attribute name = "info" type = "string"/>
  -            <attribute name = "errorPage" type = "RelativeURL"/>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "directive.include">
  -        <annotation>
  -            <documentation>
  -                directive.include is the "include directive".
  -		This element does not appear on XML views of JSP pages.
  -            </documentation>
  -        </annotation>
  -        <complexType content = "empty">
  -            <attribute name = "file" use = "required" type = "RelativeURL"/>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "scriptlet" type = "string"/>
  -    
  -    <element name = "declaration" type = "string"/>
  -    
  -    <element name = "expression" type = "string"/>
  -    
  -    <element name = "text" type = "string"/>
  -
  -    <element name = "useBean">
  -        <annotation>
  -            <documentation>
  -                useBean instantiates or accesses a bean in the specified scope.
  -                
  -                Constraint: The allowed combinations of attributes are:
  -                
  -                    class [type] | type [( class | beanName)]
  -                
  -            </documentation>
  -        </annotation>
  -        <complexType base = "Body" derivedBy = "extension">
  -            <attribute name = "id" use = "required" type = "Identifier"/>
  -            <attribute name = "class" type = "TypeName"/>
  -            <attribute name = "type" type = "TypeName"/>
  -            <attribute name = "beanName" type = "TypeName"/>
  -            <attribute name = "scope" use = "default" value = "page">
  -                <simpleType base = "NMTOKEN">
  -                    <enumeration value = "page"/>
  -                    <enumeration value = "session"/>
  -                    <enumeration value = "request"/>
  -                    <enumeration value = "application"/>
  -                </simpleType>
  -            </attribute>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "setProperty">
  -        <annotation>
  -            <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.
  -                                
  -                ???The spec is interpreted as restricting the values of
  -                property to (Identifier | '*').
  -                
  -                Constraint: The allowed combinations of attributes are:
  -                                
  -                    (property="*" | property="^*" (value | param))
  -                
  -            </documentation>
  -        </annotation>
  -        <complexType content = "empty">
  -            <attribute name = "name" use = "required" type = "Identifier"/>
  -            <attribute name = "property" use = "required" type = "SetProp"/>
  -            <attribute name = "value" type = "string"/>
  -            <attribute name = "param" type = "string"/>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "getProperty">
  -        <annotation>
  -            <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.
  -            </documentation>
  -        </annotation>
  -        <complexType content = "empty">
  -            <attribute name = "name" use = "required" type = "Identifier"/>
  -            <attribute name = "property" use = "required" type = "Identifier"/>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "include">
  -        <complexType content = "elementOnly">
  -            <element ref = "param" minOccurs = "0" maxOccurs = "unbounded"/>
  -            <attribute name = "flush" use = "default" value = "false" type = "Bool"/>
  -            <attribute name = "page" use = "required" type = "RelativeURL"/>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "forward">
  -        <complexType content = "elementOnly">
  -            <element ref = "param" minOccurs = "0" maxOccurs = "unbounded"/>
  -            <attribute name = "page" use = "required" type = "RelativeURL"/>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "plugin">
  -        <complexType content = "elementOnly">
  -            <sequence>
  -                <element ref = "params" minOccurs = "0" maxOccurs = "1"/>
  -                <element name = "fallback" minOccurs = "0" maxOccurs = "1"/>
  -            </sequence>
  -            <attribute name = "type" use = "required">
  -                <simpleType base = "NMTOKEN">
  -                    <enumeration value = "bean"/>
  -                    <enumeration value = "applet"/>
  -                </simpleType>
  -            </attribute>
  -            <attribute name = "code" type = "uriReference"/>
  -            <attribute name = "codebase" type = "uriReference"/>
  -            <attribute name = "align">
  -                <simpleType base = "NMTOKEN">
  -                    <enumeration value = "top"/>
  -                    <enumeration value = "middle"/>
  -                    <enumeration value = "bottom"/>
  -                    <enumeration value = "left"/>
  -                    <enumeration value = "right"/>
  -                </simpleType>
  -            </attribute>
  -            <attribute name = "archive">
  -                <simpleType base = "uriReference" derivedBy = "list"/>
  -            </attribute>
  -            <attribute name = "height" type = "Length"/>
  -            <attribute name = "hspace" type = "int"/>
  -            <attribute name = "jreversion" use = "default" value = "1.2" type = "string"/>
  -            <attribute name = "name" type = "NMTOKEN"/>
  -            <attribute name = "vspace" type = "int"/>
  -            <attribute name = "width" type = "Length"/>
  -            <attribute name = "nspluginurl" type = "uriReference"/>
  -            <attribute name = "iepluginurl" type = "uriReference"/>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "params">
  -        <complexType content = "elementOnly">
  -            <element ref = "param" minOccurs = "1" maxOccurs = "unbounded"/>
  -        </complexType>
  -    </element>
  -    
  -    <element name = "param">
  -        <complexType content = "empty">
  -            <attribute name = "name" use = "required" type = "NMTOKEN"/>
  -            <attribute name = "value" use = "required" type = "string"/>
  -        </complexType>
  -    </element>
  -    
  -</schema>
  +<!--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 1.2.
  +
  +      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>
  +
  +  <xsd:complexType name = "BasicType">
  +    <xsd:simpleContent>
  +      <xsd:extension base = "xsd:string">
  +          <xsd:attribute ref = "jsp:id"/>
  +      </xsd:extension>
  +    </xsd:simpleContent>
  +  </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>
  +
  +
  +  <!-- jsp:id attribute -->
  +
  +  <xsd:attribute name = "id" type = "xsd:string"/>
  +
  +<!--
  +This should be requesting jsp:id to be unique within all elements
  +in the document.
  +
  +  <xsd:unique name="dummy">
  +    <xsd:selector xpath="*"/>
  +    <xsd:field xpath="jsp:/@id"/>
  +  </xsd:unique>
  +-->
  +
  +  <!-- 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>
  +        Contetn Type 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.  Default is that of ContentType.
  +      </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 = "1.2" 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 ref = "jsp:id"/>
  +      <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: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 ref = "jsp:id"/>
  +      <xsd:attribute name = "file" use = "required" type = "RelativeURL"/>
  +    </xsd:complexType>
  +  </xsd:element>
  +
  +  <xsd:element name = "scriptlet" type = "BasicType">
  +    <xsd:annotation>
  +      <xsd:documentation>
  +        The representation of a scriplet.
  +      </xsd:documentation>
  +    </xsd:annotation>
  +  </xsd:element>
  +  
  +  <xsd:element name = "declaration" type = "BasicType">
  +    <xsd:annotation>
  +      <xsd:documentation>
  +        The reprsentation of a declaration.
  +      </xsd:documentation>
  +    </xsd:annotation>
  +  </xsd:element>
  +  
  +  <xsd:element name = "expression" type = "BasicType">
  +    <xsd:annotation>
  +      <xsd:documentation>
  +        The representation of an expression.
  +      </xsd:documentation>
  +    </xsd:annotation>
  +  </xsd:element>
  + 
  +  <xsd:element name = "text" type = "BasicType">
  +    <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 ref = "jsp:id"/>
  +          <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 ref = "jsp:id"/>
  +      <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 ref = "jsp:id"/>
  +      <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 ref = "jsp:id"/>
  +      <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 ref = "jsp:id"/>
  +      <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 ref = "jsp:id"/>
  +      <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:attribute ref = "jsp:id"/>
  +    </xsd:complexType>
  +  </xsd:element>
  +
  +  <xsd:element name = "param">
  +    <xsd:complexType>
  +      <xsd:attribute ref = "jsp:id"/>
  +      <xsd:attribute name = "name" use = "required" type = "xsd:NMTOKEN"/>
  +      <xsd:attribute name = "value" use = "required" type = "xsd:string"/>
  +    </xsd:complexType>
  +  </xsd:element>
  +  
  +</xsd:schema>
  
  
  

Mime
View raw message