/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.

---
Mark Roth, Java Software
JSP 2.0 Co-Specification Lead
Sun Microsystems, Inc.

Index: jsr152/src/share/dtd/web-jsptaglibrary_2_0.xsd
===================================================================
RCS file: 
/home/cvspublic/jakarta-servletapi-5/jsr152/src/share/dtd/web-jsptaglibrary_2_0.xsd,v
retrieving revision 1.9
diff -u -r1.9 web-jsptaglibrary_2_0.xsd
--- jsr152/src/share/dtd/web-jsptaglibrary_2_0.xsd      14 Feb 2003 19:34:43 -0000     
 1.9
+++ jsr152/src/share/dtd/web-jsptaglibrary_2_0.xsd      3 Mar 2003 02:24:02 -0000
@@ -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>
 
 <!-- **************************************************** -->
Index: jsr152/src/share/javax/servlet/jsp/JspContext.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/JspContext.java,v
retrieving revision 1.8
diff -u -r1.8 JspContext.java
--- jsr152/src/share/javax/servlet/jsp/JspContext.java  14 Feb 2003 19:34:43 -0000     
 1.8
+++ jsr152/src/share/javax/servlet/jsp/JspContext.java  3 Mar 2003 02:24:03 -0000
@@ -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);
Index: jsr152/src/share/javax/servlet/jsp/el/ExpressionEvaluator.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-servletapi-5/jsr152/src/share/javax/servlet/jsp/el/ExpressionEvaluator.java,v
retrieving revision 1.7
diff -u -r1.7 ExpressionEvaluator.java
--- jsr152/src/share/javax/servlet/jsp/el/ExpressionEvaluator.java      28 Jan 2003 
00:19:10 -0000      1.7
+++ jsr152/src/share/javax/servlet/jsp/el/ExpressionEvaluator.java      3 Mar 2003 
02:24:05 -0000
@@ -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.
Index: jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd
===================================================================
RCS file: 
/home/cvspublic/jakarta-servletapi-5/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd,v
retrieving revision 1.9
diff -u -r1.9 web-jsptaglibrary_2_0.xsd
--- jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd      14 Feb 2003 19:34:44 -0000     
 1.9
+++ jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd      3 Mar 2003 02:24:07 -0000
@@ -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