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