You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Søren Gjesse (JIRA)" <xe...@xml.apache.org> on 2006/08/02 16:46:15 UTC

[jira] Created: (XERCESJ-1175) The Xerces implemented SchemaFactory is not used by default when using Xerces 2.8.0 with Java 5.0

The Xerces implemented SchemaFactory is not used by default when using Xerces 2.8.0 with Java 5.0
-------------------------------------------------------------------------------------------------

                 Key: XERCESJ-1175
                 URL: http://issues.apache.org/jira/browse/XERCESJ-1175
             Project: Xerces2-J
          Issue Type: Bug
          Components: JAXP (javax.xml.validation)
    Affects Versions: 2.8.0
         Environment: Java 5.0
Xerces 2.8.0
Eclipse 3.2
            Reporter: Søren Gjesse
            Priority: Minor


When version 2.8.0 of xercesImpl.jar is added to the Java 5.0 classpath the Xerces implementation of SchemaFactory is not used by default.

The reason for this is that the content of the file META-INF/services/javax.xml.validation.SchemaFactory in xercesImpl.jar is

  org.apache.xerces.jaxp.validation.XMLSchemaFactory

It should be 

  http\://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory

(note the escape character of the : after http) as Java 5.0 expects a SchemaFactory for each schema language in this case http\://www.w3.org/2001/XMLSchema

When running the following with Java 5.0 and version 2.8.0 of xercesImpl.jar on the classpath

  import javax.xml.XMLConstants;
  ...

  SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
  System.out.println(factory.getClass().getName());

the output is 

  com.sun.org.apache.xerces.internal.jaxp.validation.xs.SchemaFactoryImpl

Which is the Java 5.0 (Xerces 2.6.2 derivate) build-in SchemaFactory and not the Xerces 2.8.0 SchemaFactory.

There are several workarrounds one is to run java with the option

  -Djavax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory

Others are to use $java.home/lib/jaxp.properties or set the system property using System.setProperty(...). See http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/SchemaFactory.html#newInstance(java.lang.String) for a description of how the SchemaFactory implementation is found.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] Resolved: (XERCESJ-1175) The Xerces implemented SchemaFactory is not used by default when using Xerces 2.8.0 with Java 5.0

Posted by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org>.
     [ http://issues.apache.org/jira/browse/XERCESJ-1175?page=all ]

Michael Glavassevich resolved XERCESJ-1175.
-------------------------------------------

    Resolution: Invalid

This is a bug in Java 5.0. It's trying to read META-INF/services files (the expected format for these is described here [1]) as if they were properties files.  There was a similar issue with XPathFactory (see here [2]).  The Apache version of the JAXP APIs doesn't have this problem and if you include it (the xml-apis.jar which accompanies Xerces) in the JDK's jre\lib\endorsed [3] directory the factory lookup mechanism will work correctly.

[1] http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider
[2] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6202043
[3] http://java.sun.com/j2se/1.4.2/docs/guide/standards/

> The Xerces implemented SchemaFactory is not used by default when using Xerces 2.8.0 with Java 5.0
> -------------------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1175
>                 URL: http://issues.apache.org/jira/browse/XERCESJ-1175
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: JAXP (javax.xml.validation)
>    Affects Versions: 2.8.0
>         Environment: Java 5.0
> Xerces 2.8.0
> Eclipse 3.2
>            Reporter: Søren Gjesse
>            Priority: Minor
>
> When version 2.8.0 of xercesImpl.jar is added to the Java 5.0 classpath the Xerces implementation of SchemaFactory is not used by default.
> The reason for this is that the content of the file META-INF/services/javax.xml.validation.SchemaFactory in xercesImpl.jar is
>   org.apache.xerces.jaxp.validation.XMLSchemaFactory
> It should be 
>   http\://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory
> (note the escape character of the : after http) as Java 5.0 expects a SchemaFactory for each schema language in this case http\://www.w3.org/2001/XMLSchema
> When running the following with Java 5.0 and version 2.8.0 of xercesImpl.jar on the classpath
>   import javax.xml.XMLConstants;
>   ...
>   SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
>   System.out.println(factory.getClass().getName());
> the output is 
>   com.sun.org.apache.xerces.internal.jaxp.validation.xs.SchemaFactoryImpl
> Which is the Java 5.0 (Xerces 2.6.2 derivate) build-in SchemaFactory and not the Xerces 2.8.0 SchemaFactory.
> There are several workarrounds one is to run java with the option
>   -Djavax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory
> Others are to use $java.home/lib/jaxp.properties or set the system property using System.setProperty(...). See http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/SchemaFactory.html#newInstance(java.lang.String) for a description of how the SchemaFactory implementation is found.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org