xerces-j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "liaomingxue (JIRA)" <xerces-j-...@xml.apache.org>
Subject [jira] Updated: (XERCESJ-1359) DOMParser exception with an xml file which name contains Chinese characters
Date Fri, 13 Feb 2009 01:29:59 GMT

     [ https://issues.apache.org/jira/browse/XERCESJ-1359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

liaomingxue updated XERCESJ-1359:
---------------------------------

    Description: 
Under the same directory, there are an xml file a.xml and a schema file r.xsd. 

With the code below, all is ok. But if change the name of the file a.xml to a name containing
Chinese characters (eg 中.xml), then the DOMParser issues an Exception:
java.net.MalformedURLException: unknown protocol: e
	at java.net.URL.<init>(URL.java:586)
	at java.net.URL.<init>(URL.java:476)
	at java.net.URL.<init>(URL.java:425)
	at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
	at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at xml.DOMParserDemo.main(DOMParserDemo.java:36)
 
And if replace parser.parse("E:/a.xml");  with parser.parse("file:E:/中.xml");  then it gives
some warnings and errors:
[Warning] 中.xml:3:117: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Error] 中.xml:3:117: cvc-elt.1: Cannot find the declaration of element 'ResourceReg'.
[Warning] 中.xml:5:16: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Warning] 中.xml:8:18: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Warning] 中.xml:10:15: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Warning] 中.xml:12:18: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Warning] 中.xml:18:19: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Warning] 中.xml:20:11: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Warning] 中.xml:22:11: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Warning] 中.xml:24:11: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
[Warning] 中.xml:26:10: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.

the code:
   try 
    { 
      DOMParser parser = new DOMParser(); 
      parser.setFeature("http://xml.org/sax/features/validation",true); 
      parser.setFeature("http://apache.org/xml/features/validation/schema",true); 
      parser.parse("E:/a.xml"); 
      Document doc = parser.getDocument(); 
    } 
    catch(Exception e) 
    { 
      e.printStackTrace(); 
    } 

a.xml:
<?xml version="1.0" encoding="gb2312"?> 
<ResourceReg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNameSpaceSchemaLocation="r.xsd">

  <ResourceFig> 
    <ResourceKID>512 </ResourceKID> 
    <PortAddr>192.192.192.222:1:1 </PortAddr> 
    <ResourceSID>3 </ResourceSID> 
  </ResourceFig> 
  <ResourceStatus> 
    <ZBWZ>135,26 </ZBWZ> 
    <YXZT>1 </YXZT> 
    <CSQB>true </CSQB> 
    <BKF>2 </BKF> 
  </ResourceStatus> 
</ResourceReg> 

r.xsd:  
<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="ResourceReg"> 
  <xs:complexType> 
  <xs:all> 
    <xs:element name="ResourceFig" type="ResourceFig" minOccurs="1" maxOccurs="1" />

    <xs:element name="ResourceStatus" minOccurs="1" maxOccurs="1" /> 
  </xs:all> 
  </xs:complexType> 
</xs:element> 
<xs:complexType name="ResourceFig"> 
  <xs:all> 
  <xs:element name="ResourceKID" type="xs:unsignedShort" /> 
  <xs:element name="PortAddr" type="xs:token" /> 
  <xs:element name="ResourceSID" type="xs:unsignedByte" /> 
  </xs:all> 
</xs:complexType> 
</xs:schema>

  was:
Under the same directory, there are an xml file a.xml and a schema file r.xsd. 

With the code below, all is ok. But if change the name of the file a.xml to a name containing
Chinese characters, then the DOMParser says it cannot find the schema file r.xsd.

   try 
    { 
      DOMParser parser = new DOMParser(); 
      parser.setFeature("http://xml.org/sax/features/validation",true); 
      parser.setFeature("http://apache.org/xml/features/validation/schema",true); 
      parser.parse("E:/a.xml"); 
      Document doc = parser.getDocument(); 
    } 
    catch(Exception e) 
    { 
      e.printStackTrace(); 
    } 

a.xml:
<?xml version="1.0" encoding="gb2312"?> 
<ResourceReg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNameSpaceSchemaLocation="r.xsd">

  <ResourceFig> 
    <ResourceKID>512 </ResourceKID> 
    <PortAddr>192.192.192.222:1:1 </PortAddr> 
    <ResourceSID>3 </ResourceSID> 
  </ResourceFig> 
  <ResourceStatus> 
    <ZBWZ>135,26 </ZBWZ> 
    <YXZT>1 </YXZT> 
    <CSQB>true </CSQB> 
    <BKF>2 </BKF> 
  </ResourceStatus> 
</ResourceReg> 

r.xsd:  
<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="ResourceReg"> 
  <xs:complexType> 
  <xs:all> 
    <xs:element name="ResourceFig" type="ResourceFig" minOccurs="1" maxOccurs="1" />

    <xs:element name="ResourceStatus" minOccurs="1" maxOccurs="1" /> 
  </xs:all> 
  </xs:complexType> 
</xs:element> 
<xs:complexType name="ResourceFig"> 
  <xs:all> 
  <xs:element name="ResourceKID" type="xs:unsignedShort" /> 
  <xs:element name="PortAddr" type="xs:token" /> 
  <xs:element name="ResourceSID" type="xs:unsignedByte" /> 
  </xs:all> 
</xs:complexType> 
</xs:schema>

        Summary: DOMParser exception with an xml file which name contains Chinese characters
 (was: DOMParser cannot find the schema under the same path as an xml file containing Chinese
characters)

> DOMParser exception with an xml file which name contains Chinese characters
> ---------------------------------------------------------------------------
>
>                 Key: XERCESJ-1359
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1359
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: JAXP (javax.xml.parsers)
>    Affects Versions: 2.9.1
>         Environment: Windows in China
>            Reporter: liaomingxue
>            Priority: Minor
>
> Under the same directory, there are an xml file a.xml and a schema file r.xsd. 
> With the code below, all is ok. But if change the name of the file a.xml to a name containing
Chinese characters (eg 中.xml), then the DOMParser issues an Exception:
> java.net.MalformedURLException: unknown protocol: e
> 	at java.net.URL.<init>(URL.java:586)
> 	at java.net.URL.<init>(URL.java:476)
> 	at java.net.URL.<init>(URL.java:425)
> 	at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
> 	at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
> 	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> 	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> 	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> 	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
> 	at xml.DOMParserDemo.main(DOMParserDemo.java:36)
>  
> And if replace parser.parse("E:/a.xml");  with parser.parse("file:E:/中.xml");  then
it gives some warnings and errors:
> [Warning] 中.xml:3:117: schema_reference.4: Failed to read schema document 'r.xsd',
because 1) could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
> [Error] 中.xml:3:117: cvc-elt.1: Cannot find the declaration of element 'ResourceReg'.
> [Warning] 中.xml:5:16: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
> [Warning] 中.xml:8:18: schema_reference.4: Failed to read schema document 'r.xsd', because
1) could not find the document; 2) the document could not be read; 3) the root element of
the document is not <xsd:schema>.
> [Warning] 中.xml:10:15: schema_reference.4: Failed to read schema document 'r.xsd',
because 1) could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
> [Warning] 中.xml:12:18: schema_reference.4: Failed to read schema document 'r.xsd',
because 1) could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
> [Warning] 中.xml:18:19: schema_reference.4: Failed to read schema document 'r.xsd',
because 1) could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
> [Warning] 中.xml:20:11: schema_reference.4: Failed to read schema document 'r.xsd',
because 1) could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
> [Warning] 中.xml:22:11: schema_reference.4: Failed to read schema document 'r.xsd',
because 1) could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
> [Warning] 中.xml:24:11: schema_reference.4: Failed to read schema document 'r.xsd',
because 1) could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
> [Warning] 中.xml:26:10: schema_reference.4: Failed to read schema document 'r.xsd',
because 1) could not find the document; 2) the document could not be read; 3) the root element
of the document is not <xsd:schema>.
> the code:
>    try 
>     { 
>       DOMParser parser = new DOMParser(); 
>       parser.setFeature("http://xml.org/sax/features/validation",true); 
>       parser.setFeature("http://apache.org/xml/features/validation/schema",true); 
>       parser.parse("E:/a.xml"); 
>       Document doc = parser.getDocument(); 
>     } 
>     catch(Exception e) 
>     { 
>       e.printStackTrace(); 
>     } 
> a.xml:
> <?xml version="1.0" encoding="gb2312"?> 
> <ResourceReg xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNameSpaceSchemaLocation="r.xsd">

>   <ResourceFig> 
>     <ResourceKID>512 </ResourceKID> 
>     <PortAddr>192.192.192.222:1:1 </PortAddr> 
>     <ResourceSID>3 </ResourceSID> 
>   </ResourceFig> 
>   <ResourceStatus> 
>     <ZBWZ>135,26 </ZBWZ> 
>     <YXZT>1 </YXZT> 
>     <CSQB>true </CSQB> 
>     <BKF>2 </BKF> 
>   </ResourceStatus> 
> </ResourceReg> 
> r.xsd:  
> <?xml version="1.0"?> 
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
> <xs:element name="ResourceReg"> 
>   <xs:complexType> 
>   <xs:all> 
>     <xs:element name="ResourceFig" type="ResourceFig" minOccurs="1" maxOccurs="1"
/> 
>     <xs:element name="ResourceStatus" minOccurs="1" maxOccurs="1" /> 
>   </xs:all> 
>   </xs:complexType> 
> </xs:element> 
> <xs:complexType name="ResourceFig"> 
>   <xs:all> 
>   <xs:element name="ResourceKID" type="xs:unsignedShort" /> 
>   <xs:element name="PortAddr" type="xs:token" /> 
>   <xs:element name="ResourceSID" type="xs:unsignedByte" /> 
>   </xs:all> 
> </xs:complexType> 
> </xs:schema>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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


Mime
View raw message