kinman      2003/03/03 16:17:05

  Modified:    jsr152/src/share/dtd web-jsptaglibrary_2_0.xsd
               jsr152/src/share/javax/servlet/jsp JspContext.java
               jsr152/src/share/javax/servlet/jsp/el
                        ExpressionEvaluator.java
               jsr154/src/share/dtd web-jsptaglibrary_2_0.xsd
  Log:
  - Patch by Mark Roth
  
  /jsr152/src/share/javax/servlet/jsp/JspContext.java:
       - Added throws clause for NullPointerException for null
         name parameter to the following methods:
             findAttribute( name )
             removeAttribute( name )
             removeAttribute( name, scope )
             getAttributesScope( name )
  
  /jsr152/src/share/javax/servlet/jsp/el/ExpressionEvaluator.java
       - We now allow null to be passed for defaultPrefix for cases where
         a function must have a prefix.
  
  /jsr152/src/share/dtd/web-jsptaglibrary_2_0.xsd:
  /jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd:
       - Updated part of the description of the taglib element
         Before:
           The taglib element contains tag elements.
         After:
           The taglib element contains, among other
           things, tag and tag-file elements.
       - Removed tag-file-name-uniqueness constraint
       - Upgraded tag-name-uniqueness constraint to check
         uniqueness across both tag and tag-file elements.
         (Xerces has a bug that causes this not to work, yet
         but this should work, according to Kohsuke and
         Norm)
       - langage --> language
       - Removed uppercase versions of body-content types,
         TAGDEPENDENT, EMPTY, and SCRIPTLESS
       - Renamed j2ee:tag-extensionType to
         j2ee:tld-extensionType
       - Removed references to old mustUnderstand attribute
       - Added function-extension element for extension of
         function elements in addition to taglib and tag
         elements.
  
  Revision  Changes    Path
  1.10      +63 -73    
jakarta-servletapi-5/jsr152/src/share/dtd/web-jsptaglibrary_2_0.xsd
  
  Index: web-jsptaglibrary_2_0.xsd
  ===================================================================
  RCS file: 
/home/cvs/jakarta-servletapi-5/jsr152/src/share/dtd/web-jsptaglibrary_2_0.xsd,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- web-jsptaglibrary_2_0.xsd 14 Feb 2003 19:34:43 -0000      1.9
  +++ web-jsptaglibrary_2_0.xsd 4 Mar 2003 00:17:04 -0000       1.10
  @@ -10,7 +10,7 @@
   
     <xsd:annotation>
       <xsd:documentation>
  -      @(#)web-jsptaglibrary_2_0.xsds 1.31 02/11/03
  +      @(#)web-jsptaglibrary_2_0.xsds 1.32 03/02/03
       </xsd:documentation>
     </xsd:annotation>
     <xsd:annotation>
  @@ -99,25 +99,13 @@
         <xsd:annotation>
        <xsd:documentation>
   
  -       The taglib element contains tag elements.
  +       The taglib element contains, among other things, tag and
  +       tag-file elements.
          The name subelements of these elements must each be unique.
   
        </xsd:documentation>
         </xsd:annotation>
  -      <xsd:selector xpath="j2ee:tag"/>
  -      <xsd:field    xpath="j2ee:name"/>
  -    </xsd:unique>
  -
  -    <xsd:unique name="tag-file-name-uniqueness">
  -      <xsd:annotation>
  -     <xsd:documentation>
  -
  -       The taglib element contains tag-file elements.
  -       The name subelements of these elements must each be unique.
  -
  -     </xsd:documentation>
  -      </xsd:annotation>
  -      <xsd:selector xpath="j2ee:tag-file"/>
  +      <xsd:selector xpath="j2ee:tag|j2ee:tag-file"/>
         <xsd:field    xpath="j2ee:name"/>
       </xsd:unique>
   
  @@ -150,7 +138,7 @@
   
        tagdependent    The body of the tag is interpreted by the tag
                        implementation itself, and is most likely
  -                     in a different "langage", e.g embedded SQL
  +                     in a different "language", e.g embedded SQL
                        statements.
   
        JSP             The body of the tag contains nested JSP
  @@ -168,12 +156,9 @@
       <xsd:simpleContent>
         <xsd:restriction base="j2ee:string">
        <xsd:enumeration value="tagdependent"/>
  -     <xsd:enumeration value="TAGDEPENDENT"/>
        <xsd:enumeration value="JSP"/>
        <xsd:enumeration value="empty"/>
  -     <xsd:enumeration value="EMPTY"/>
        <xsd:enumeration value="scriptless"/>
  -     <xsd:enumeration value="SCRIPTLESS"/>
         </xsd:restriction>
       </xsd:simpleContent>
     </xsd:complexType>
  @@ -227,6 +212,10 @@
        example             Optional informal description of an
                            example of a use of this function
   
  +     function-extension  Zero or more extensions that provide extra
  +                         information about this function, for tool
  +                         consumption
  +
         </xsd:documentation>
       </xsd:annotation>
   
  @@ -308,6 +297,19 @@
        </xsd:annotation>
   
         </xsd:element>
  +      <xsd:element name="function-extension"
  +                type="j2ee:tld-extensionType"
  +                minOccurs="0"
  +                maxOccurs="unbounded">
  +     <xsd:annotation>
  +       <xsd:documentation>
  +
  +         Function extensions are for tool use only and must not affect
  +         the behavior of a container.
  +
  +       </xsd:documentation>
  +     </xsd:annotation>
  +      </xsd:element>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
     </xsd:complexType>
  @@ -344,41 +346,6 @@
   
   <!-- **************************************************** -->
   
  -  <xsd:complexType name="tag-extensionType">
  -    <xsd:annotation>
  -      <xsd:documentation>
  -
  -     The tag-extensionType is used to indicate
  -     extensions to the specific TLD element.
  -
  -     It is used by elements to designate an extension block
  -     that is targeted to a specific extension designated by
  -     a set of extension elements that are declared by a
  -     namespace. The namespace identifies the extension to
  -     the tool that processes the extension.
  -
  -     The type of the extension-element is abstract. Therefore,
  -     a concrete type must be specified by the TLD using
  -     xsi:type attribute for each extension-element.
  -
  -      </xsd:documentation>
  -    </xsd:annotation>
  -
  -    <xsd:sequence>
  -      <xsd:element name="extension-element"
  -                type="j2ee:extensibleType"
  -                maxOccurs="unbounded"/>
  -    </xsd:sequence>
  -
  -    <xsd:attribute name="namespace"
  -                use="required"
  -                type="xsd:anyURI"/>
  -    <xsd:attribute name="id" type="xsd:ID"/>
  -
  -  </xsd:complexType>
  -
  -<!-- **************************************************** -->
  -
     <xsd:complexType name="tagFileType">
       <xsd:annotation>
         <xsd:documentation>
  @@ -436,18 +403,14 @@
   
         </xsd:element>
         <xsd:element name="tag-extension"
  -                type="j2ee:tag-extensionType"
  +                type="j2ee:tld-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
   
            Tag extensions are for tool use only and must not affect
  -         the behavior of a container.  The TLD extension mechanism
  -         only allows ignorable extensions (i.e. those without a
  -         mustUnderstand attribute).  A Tag Library is considered
  -         invalid if it requires an extension that must be
  -         understood by setting mustUnderstand="true".
  +         the behavior of a container.
   
          </xsd:documentation>
        </xsd:annotation>
  @@ -572,18 +535,14 @@
   
         </xsd:element>
         <xsd:element name="tag-extension"
  -                type="j2ee:tag-extensionType"
  +                type="j2ee:tld-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
   
            Tag extensions are for tool use only and must not affect
  -         the behavior of a container.  The TLD extension mechanism
  -         only allows ignorable extensions (i.e. those without a
  -         mustUnderstand attribute).  A Tag Library is considered
  -         invalid if it requires an extension that must be
  -         understood by setting mustUnderstand="true".
  +         the behavior of a container.
   
          </xsd:documentation>
        </xsd:annotation>
  @@ -702,18 +661,14 @@
                   minOccurs="0"
                   maxOccurs="unbounded"/>
         <xsd:element name="taglib-extension"
  -                type="j2ee:tag-extensionType"
  +                type="j2ee:tld-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
   
            Taglib extensions are for tool use only and must not affect
  -         the behavior of a container.  The TLD extension mechanism
  -         only allows ignorable extensions (i.e. those without a
  -         mustUnderstand attribute).  A Tag Library is considered
  -         invalid if it requires an extension that must be
  -         understood by setting mustUnderstand="true".
  +         the behavior of a container.
   
          </xsd:documentation>
        </xsd:annotation>
  @@ -856,6 +811,41 @@
       <xsd:simpleContent>
         <xsd:restriction base="j2ee:xsdNMTOKENType"/>
       </xsd:simpleContent>
  +  </xsd:complexType>
  +
  +<!-- **************************************************** -->
  +
  +  <xsd:complexType name="tld-extensionType">
  +    <xsd:annotation>
  +      <xsd:documentation>
  +
  +     The tld-extensionType is used to indicate
  +     extensions to a specific TLD element.
  +
  +     It is used by elements to designate an extension block
  +     that is targeted to a specific extension designated by
  +     a set of extension elements that are declared by a
  +     namespace. The namespace identifies the extension to
  +     the tool that processes the extension.
  +
  +     The type of the extension-element is abstract. Therefore,
  +     a concrete type must be specified by the TLD using
  +     xsi:type attribute for each extension-element.
  +
  +      </xsd:documentation>
  +    </xsd:annotation>
  +
  +    <xsd:sequence>
  +      <xsd:element name="extension-element"
  +                type="j2ee:extensibleType"
  +                maxOccurs="unbounded"/>
  +    </xsd:sequence>
  +
  +    <xsd:attribute name="namespace"
  +                use="required"
  +                type="xsd:anyURI"/>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +
     </xsd:complexType>
   
   <!-- **************************************************** -->
  
  
  
  1.9       +4 -0      
jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/JspContext.java
  
  Index: JspContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/JspContext.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JspContext.java   14 Feb 2003 19:34:43 -0000      1.8
  +++ JspContext.java   4 Mar 2003 00:17:04 -0000       1.9
  @@ -190,6 +190,7 @@
        *
        * @param name the name of the attribute to search for
        * @return the value associated or null
  +     * @throws NullPointerException if the name is null
        */
   
       abstract public Object findAttribute(String name);
  @@ -199,6 +200,7 @@
        * from all scopes.  Does nothing if there is no such object.
        *
        * @param name The name of the object to remove.
  +     * @throws NullPointerException if the name is null
        */
   
       abstract public void removeAttribute(String name);
  @@ -214,6 +216,7 @@
        *     PageContext.SESSION_SCOPE but the page that was requested
        *     does not participate in a session or the session has been
        *     invalidated.
  +     * @throws NullPointerException if the name is null
        */
   
       abstract public void removeAttribute(String name, int scope);
  @@ -223,6 +226,7 @@
        *
        * @param name the name of the attribute to return the scope for
        * @return the scope of the object associated with the name specified or 0
  +     * @throws NullPointerException if the name is null
        */
   
       abstract public int getAttributesScope(String name);
  
  
  
  1.8       +6 -0      
jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/el/ExpressionEvaluator.java
  
  Index: ExpressionEvaluator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/el/ExpressionEvaluator.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ExpressionEvaluator.java  28 Jan 2003 00:19:10 -0000      1.7
  +++ ExpressionEvaluator.java  4 Mar 2003 00:17:05 -0000       1.8
  @@ -105,6 +105,9 @@
        *     it is invoked.
        * @param defaultPrefix The default prefix to use when a function is
        *     encountered with no prefix, or "" if the default is no prefix.
  +     *     If the value null is provided, an ELException will be thrown if
  +     *     a function call is encountered with no prefix.  This is useful
  +     *     for situations where a function must have a prefix.
        * @return The Expression object encapsulating the arguments.
        *
        * @exception ELException Thrown if parsing errors were found.
  @@ -134,6 +137,9 @@
        *     it is invoked.
        * @param defaultPrefix The default prefix to use when a function is
        *     encountered with no prefix, or "" if the default is no prefix.
  +     *     If the value null is provided, an ELException will be thrown if
  +     *     a function call is encountered with no prefix.  This is useful
  +     *     for situations where a function must have a prefix.
        * @return The result of the expression evaluation.
        *
        * @exception ELException Thrown if the expression evaluation failed.
  
  
  
  1.10      +63 -73    
jakarta-servletapi-5/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd
  
  Index: web-jsptaglibrary_2_0.xsd
  ===================================================================
  RCS file: 
/home/cvs/jakarta-servletapi-5/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- web-jsptaglibrary_2_0.xsd 14 Feb 2003 19:34:44 -0000      1.9
  +++ web-jsptaglibrary_2_0.xsd 4 Mar 2003 00:17:05 -0000       1.10
  @@ -10,7 +10,7 @@
   
     <xsd:annotation>
       <xsd:documentation>
  -      @(#)web-jsptaglibrary_2_0.xsds 1.31 02/11/03
  +      @(#)web-jsptaglibrary_2_0.xsds 1.32 03/02/03
       </xsd:documentation>
     </xsd:annotation>
     <xsd:annotation>
  @@ -99,25 +99,13 @@
         <xsd:annotation>
        <xsd:documentation>
   
  -       The taglib element contains tag elements.
  +       The taglib element contains, among other things, tag and
  +       tag-file elements.
          The name subelements of these elements must each be unique.
   
        </xsd:documentation>
         </xsd:annotation>
  -      <xsd:selector xpath="j2ee:tag"/>
  -      <xsd:field    xpath="j2ee:name"/>
  -    </xsd:unique>
  -
  -    <xsd:unique name="tag-file-name-uniqueness">
  -      <xsd:annotation>
  -     <xsd:documentation>
  -
  -       The taglib element contains tag-file elements.
  -       The name subelements of these elements must each be unique.
  -
  -     </xsd:documentation>
  -      </xsd:annotation>
  -      <xsd:selector xpath="j2ee:tag-file"/>
  +      <xsd:selector xpath="j2ee:tag|j2ee:tag-file"/>
         <xsd:field    xpath="j2ee:name"/>
       </xsd:unique>
   
  @@ -150,7 +138,7 @@
   
        tagdependent    The body of the tag is interpreted by the tag
                        implementation itself, and is most likely
  -                     in a different "langage", e.g embedded SQL
  +                     in a different "language", e.g embedded SQL
                        statements.
   
        JSP             The body of the tag contains nested JSP
  @@ -168,12 +156,9 @@
       <xsd:simpleContent>
         <xsd:restriction base="j2ee:string">
        <xsd:enumeration value="tagdependent"/>
  -     <xsd:enumeration value="TAGDEPENDENT"/>
        <xsd:enumeration value="JSP"/>
        <xsd:enumeration value="empty"/>
  -     <xsd:enumeration value="EMPTY"/>
        <xsd:enumeration value="scriptless"/>
  -     <xsd:enumeration value="SCRIPTLESS"/>
         </xsd:restriction>
       </xsd:simpleContent>
     </xsd:complexType>
  @@ -227,6 +212,10 @@
        example             Optional informal description of an
                            example of a use of this function
   
  +     function-extension  Zero or more extensions that provide extra
  +                         information about this function, for tool
  +                         consumption
  +
         </xsd:documentation>
       </xsd:annotation>
   
  @@ -308,6 +297,19 @@
        </xsd:annotation>
   
         </xsd:element>
  +      <xsd:element name="function-extension"
  +                type="j2ee:tld-extensionType"
  +                minOccurs="0"
  +                maxOccurs="unbounded">
  +     <xsd:annotation>
  +       <xsd:documentation>
  +
  +         Function extensions are for tool use only and must not affect
  +         the behavior of a container.
  +
  +       </xsd:documentation>
  +     </xsd:annotation>
  +      </xsd:element>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
     </xsd:complexType>
  @@ -344,41 +346,6 @@
   
   <!-- **************************************************** -->
   
  -  <xsd:complexType name="tag-extensionType">
  -    <xsd:annotation>
  -      <xsd:documentation>
  -
  -     The tag-extensionType is used to indicate
  -     extensions to the specific TLD element.
  -
  -     It is used by elements to designate an extension block
  -     that is targeted to a specific extension designated by
  -     a set of extension elements that are declared by a
  -     namespace. The namespace identifies the extension to
  -     the tool that processes the extension.
  -
  -     The type of the extension-element is abstract. Therefore,
  -     a concrete type must be specified by the TLD using
  -     xsi:type attribute for each extension-element.
  -
  -      </xsd:documentation>
  -    </xsd:annotation>
  -
  -    <xsd:sequence>
  -      <xsd:element name="extension-element"
  -                type="j2ee:extensibleType"
  -                maxOccurs="unbounded"/>
  -    </xsd:sequence>
  -
  -    <xsd:attribute name="namespace"
  -                use="required"
  -                type="xsd:anyURI"/>
  -    <xsd:attribute name="id" type="xsd:ID"/>
  -
  -  </xsd:complexType>
  -
  -<!-- **************************************************** -->
  -
     <xsd:complexType name="tagFileType">
       <xsd:annotation>
         <xsd:documentation>
  @@ -436,18 +403,14 @@
   
         </xsd:element>
         <xsd:element name="tag-extension"
  -                type="j2ee:tag-extensionType"
  +                type="j2ee:tld-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
   
            Tag extensions are for tool use only and must not affect
  -         the behavior of a container.  The TLD extension mechanism
  -         only allows ignorable extensions (i.e. those without a
  -         mustUnderstand attribute).  A Tag Library is considered
  -         invalid if it requires an extension that must be
  -         understood by setting mustUnderstand="true".
  +         the behavior of a container.
   
          </xsd:documentation>
        </xsd:annotation>
  @@ -572,18 +535,14 @@
   
         </xsd:element>
         <xsd:element name="tag-extension"
  -                type="j2ee:tag-extensionType"
  +                type="j2ee:tld-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
   
            Tag extensions are for tool use only and must not affect
  -         the behavior of a container.  The TLD extension mechanism
  -         only allows ignorable extensions (i.e. those without a
  -         mustUnderstand attribute).  A Tag Library is considered
  -         invalid if it requires an extension that must be
  -         understood by setting mustUnderstand="true".
  +         the behavior of a container.
   
          </xsd:documentation>
        </xsd:annotation>
  @@ -702,18 +661,14 @@
                   minOccurs="0"
                   maxOccurs="unbounded"/>
         <xsd:element name="taglib-extension"
  -                type="j2ee:tag-extensionType"
  +                type="j2ee:tld-extensionType"
                   minOccurs="0"
                   maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
   
            Taglib extensions are for tool use only and must not affect
  -         the behavior of a container.  The TLD extension mechanism
  -         only allows ignorable extensions (i.e. those without a
  -         mustUnderstand attribute).  A Tag Library is considered
  -         invalid if it requires an extension that must be
  -         understood by setting mustUnderstand="true".
  +         the behavior of a container.
   
          </xsd:documentation>
        </xsd:annotation>
  @@ -856,6 +811,41 @@
       <xsd:simpleContent>
         <xsd:restriction base="j2ee:xsdNMTOKENType"/>
       </xsd:simpleContent>
  +  </xsd:complexType>
  +
  +<!-- **************************************************** -->
  +
  +  <xsd:complexType name="tld-extensionType">
  +    <xsd:annotation>
  +      <xsd:documentation>
  +
  +     The tld-extensionType is used to indicate
  +     extensions to a specific TLD element.
  +
  +     It is used by elements to designate an extension block
  +     that is targeted to a specific extension designated by
  +     a set of extension elements that are declared by a
  +     namespace. The namespace identifies the extension to
  +     the tool that processes the extension.
  +
  +     The type of the extension-element is abstract. Therefore,
  +     a concrete type must be specified by the TLD using
  +     xsi:type attribute for each extension-element.
  +
  +      </xsd:documentation>
  +    </xsd:annotation>
  +
  +    <xsd:sequence>
  +      <xsd:element name="extension-element"
  +                type="j2ee:extensibleType"
  +                maxOccurs="unbounded"/>
  +    </xsd:sequence>
  +
  +    <xsd:attribute name="namespace"
  +                use="required"
  +                type="xsd:anyURI"/>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +
     </xsd:complexType>
   
   <!-- **************************************************** -->
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to