parserFactory.setAttribute
("http://java.sun.com/xml/jaxp/properties/schemaLanguage";,
                             "http://www.w3.org/2001/XMLSchema";);

Sandy Gao
Software Developer, IBM Canada
(1-905) 413-3255
[EMAIL PROTECTED]



                                                                                
                                                       
                      Peter Lane                                                
                                                       
                      <[EMAIL PROTECTED]        To:       [EMAIL PROTECTED]     
                                             
                      >                        cc:                              
                                                       
                                               Subject:  Re: AW: Not an FAQ: 
still unable to validate against XSD                      
                      10/07/2002 10:06                                          
                                                       
                      AM                                                        
                                                       
                      Please respond to                                         
                                                       
                      xerces-j-user                                             
                                                       
                                                                                
                                                       
                                                                                
                                                       



I just signed up to this list and stumbled accross this thread which
illustrates exactly (as far as I can tell) the problem I'm having.
Furthermore, I do not accept this solution (even if it works) as a valid
  "fix" to the problem.  The fact remains that namespace-enabled schemas
are not being processed correctly when referenced normally within an XML
document.  My example that doesn't work is as follows:

Schema:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://schemas.gridforum.org/gridServices/rsl";
             xmlns:xsd="http://www.w3.org/2001/XMLSchema";
             xmlns:rsl="http://schemas.gridforum.org/gridServices/rsl";
             xmlns="http://schemas.gridforum.org/gridServices/rsl";
             version="0.2">

     <xsd:element name="rsl" type="rslType"/>

     <xsd:complexType name="rslType">
         <xsd:sequence>
             <xsd:element name="job" type="xsd:string" minOccurs="0"/>
         </xsd:sequence>
     </xsd:complexType>

</xsd:schema>



Document:

<?xml version="1.0" encoding="UTF-8"?>
<rsl
             xmlns:rsl="http://schemas.gridforum.org/gridServices/rsl";
             xmlns="http://schemas.gridforum.org/gridServices/rsl";
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
             xsi:schemaLocation="
                 http://schemas.gridforum.org/gridServices/rsl
                 schema/test.xsd">
     <job> Bastard! </job>
</rsl>



Xerces code:

DocumentBuilderFactory parserFactory = null;
DocumentBuilder xmlParser = null;
try {
             parserFactory = DocumentBuilderFactory.newInstance();
             parserFactory.setNamespaceAware(true);
         parserFactory.setValidating(true);
         xmlParser = parserFactory.newDocumentBuilder();
         xmlParser.setErrorHandler(this);
} catch (javax.xml.parsers.ParserConfigurationException pce) {
             logger.error("problem getting parser factory instance", pce);
             return null;
}

BufferedReader bufferedReader = new BufferedReader(xmlReader);
return xmlParser.parse(new InputSource(bufferedReader));



I would really appreciate some feedback on this as my project is
basically stalled until I get this resolved.

Thanks,
Peter



Amthauer, Heiner wrote:
> Hi!
>
> Finally, I found a way to get it work. By setting the namespace-feature
to
> true and setting the XSD definition with the
>
http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation
> property, the parser actually validates using my schema defintion.
>
> Thanx for your efforts.
>
> greetings
> Heiner
>
>
> -----Urspr�ngliche Nachricht-----
> Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Gesendet am: Montag, 7. Oktober 2002 16:32
> An: [EMAIL PROTECTED]
> Betreff: Re: Not an FAQ: still unable to validate against XSD
>
> Have you tried turning on namespace? (SAXParserFactory#setNamespaceAware)
>
> Sandy Gao
> Software Developer, IBM Canada
> (1-905) 413-3255
> [EMAIL PROTECTED]
>
>
>
>
>
>                       "Amthauer, Heiner"
>
>                       <[EMAIL PROTECTED]        To:       "'Xerces'"
> <[EMAIL PROTECTED]>
>                       ystems.com>                 cc:
>
>                                                   Subject:  Not an FAQ:
> still unable to validate against XSD
>                       10/07/2002 06:04 AM
>
>                       Please respond to
>
>                       xerces-j-user
>
>
>
>
>
>
>
>
> Hi there!
>
> I'm still unable to validate my xml file against an XSD. Here ist the
code,
> I use to load the file via SAX, using XERCES 2.0 (JRE1.3.1):
>
>     private static final String FLAG_VALIDATE =
> "http://xml.org/sax/features/validation";;
>     private static final String FLAG_SCHEMA =
> "http://apache.org/xml/features/validation/schema";;
>
>     private SAXParserFactory factory = null;
>     private org.xml.sax.SAXParser saxParser = null;
>
>              ...
>         factory = SAXParserFactory.newInstance();
>              ...
>         saxParser = factory.newSAXParser();
>              ...
>              saxParser.getXMLReader().setFeature(FLAG_VALIDATE, true);
>              saxParser.getXMLReader().setFeature(FLAG_SCHEMA, true);
>              saxParser.parse(new File(file), this);
>              ...
>
> This always gives me an error saying "cvc-elt.1: Cannot find the
> declaration
> of element 'whatever'".
>
> Since then, I've tried to use an EntityResolver for loading the XSD. I've
> started with writing a little test code for the EntryResolver like this:
>
> public class SAXEntityResolver implements EntityResolver {
>
>         public InputSource resolveEntity(String publicID, String
systemID)
> throws SAXException, IOException {
>             System.out.println(publicID+", "+systemID);
>             return null;
>         }
>
> }
>
> ...
>
>     private static final String FLAG_VALIDATE =
> "http://xml.org/sax/features/validation";;
>     private static final String FLAG_SCHEMA =
> "http://apache.org/xml/features/validation/schema";;
>
>     private SAXParserFactory factory = null;
>     private SAXParser saxParser = null;
>
>              ...
>         factory = SAXParserFactory.newInstance();
>              ...
>         saxParser = factory.newSAXParser();
>              ...
>              saxParser.getXMLReader().setFeature(FLAG_VALIDATE, true);
>              saxParser.getXMLReader().setFeature(FLAG_SCHEMA, true);
>              saxParser.getXMLReader().setEntityResolver(new
> SAXEntityResolver());
>              saxParser.parse(new File(file), this);
>              ...
>
> In result, my programm still reads the xml file with the same error as
> before. The println() in the EntityResolver is never reached.
>
> I woulde really appreciate any help on this. Next on schedule is testing
> and
> I'm still unable to validate the xml file. Btw., loading the file with
any
> other XML/XSD aware application works fine.
>
> regards
> Heiner
>
>
> ---------------------------------------------------------------
> Dipl. Ing. Heiner Amthauer
>
> T-Systems GEI GmbH
>
> Hausanschrift: Magirusstr. 39/1, 89077 Ulm
> Postanschrift: Postfach 20 64, 89010 Ulm
> Telefon: +49 ( 731) 9344-4422
> Telefax: +49 (731) 9344-4409
> Mobil: +49 (1 78) 4269335
> E-Mail: [EMAIL PROTECTED]
> Internet: http://www.t-systems.com
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to