Bug 31313

Summary: missing / on xsi:schemaLocation
Product: Taglibs Reporter: Pedro Salgado <registration>
Component: Standard TaglibAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: minor    
Priority: P3    
Version: 1.1   
Target Milestone: ---   
Hardware: All   
OS: other   

Description Pedro Salgado 2004-09-20 15:43:52 UTC
I have just downloaded standar-1.1.1 and noticed that on: c.tld, fmt.tld, sql.tld and x.tld this line 
appears:
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
    version="2.0">

  on http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd is missing a final /

  http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd

Pedro Salgado
Comment 1 Justyna Horwat 2004-10-18 17:22:19 UTC
According to the W3C document the schemaLocation declaration is made up of a pair of URI references. 
One defines the namespace name and the other is a hint as to the location of the schema document. 
The space in the schemaLocation definition separates the two declarations.

For a complete explanation you can take a look at part 3 of:

http://www.w3.org/TR/xmlschema-1/#schema-loc

In the JSTL case the location is not an absolute URI which can be confusing especially to some IDE's. I 
went ahead and changed it to be an absoluate URI pointing to the schema document location. 

Note that there is a space character between the namespace declaration and schema document 
location. That space character is intentional.

I know that some IDE's may have problems with the new W3C standards. Hopefully they will be catching 
up and supporting these types of definitions soon.