Subjects
Home
VOTE Move XML Commons to Xerces
Commented: (XERCESJ 589) Bug with pattern restriction on long strings
: Xerces J 2 8 1 Release on Wednesday, September 13th
: Xerces J 2 9 0 Release on Wednesday, November 22nd
Commented: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1178) Error getting prefix for an attribute with no n
Updated: (XERCESJ 1244) XMLSchemaValidator does not contribute element 's
Some consideration about the xerces DOM implementation
Updated: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1227) Poor performance / OutOfMemoryError for sequenc
retain exception stack traces
Updated: (XERCESJ 1193) NPE or hang when parsing using the "continue afte
Future of NekoHTML
Commented: (XERCESJ 1203) NPE in XMLDTDProcessor
DOM Level 3 APIs for Xalan J and a new Xalan release (2 7 1)
: xml commons external 1 3 04 Release on Wednesday, November 22nd
Commented: (XERCESJ 1247) Incorrect location information on SAX when usin
XInclude exceptions how to mirror Xerces J functionality into Xerces C++?
First proposal on SoC project "Add support for the StAX (JSR 173) cursor API
: xml commons resolver 1 2 Release on Wednesday, November 22nd
Typo in RangeToken java Please check
Validator features
java lang ClassCastException when adopting Node
using the org apache xerces impl xs identity package
Updated: (XERCESJ 1257) buffer overflow in UTF8Reader for characters out
Problem with ref attributes and schema validation
Updated: (XERCESJ 122) XMLSchemaValidator does not contribute element 's d
Performance problem under load Xerces with Weblogic 9 x
remove ignored memory allocation
Commented: (XERCESJ 1177) SAXXMLStreamReader doesn 't always report namesp
Commented: (XERCESJ 977) Null pointer exception during DOM parsing
Commented: (XERCESJ 1197) Code cleanup for org apache xml serialize
Commented: (XERCESJ 1201) Initial contribution for StAX Event API
Updated: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special c
Commented: (XERCESJ 1199) SAXXMLStreamReader should attempt to register a
Commented: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special
Updated: (XERCESJ 589) Bug with pattern restriction on long strings
StackOverflow
xerces Range unnecessarily not garbage collectable if not detached
Updated: (XERCESJ 1178) Error getting prefix for an attribute with no nam
Bug in xs:redefine
Commented: (XERCESJ 1204) Can not set XMLEntityResolver for LSParser
Updated: (XERCESJ 1253) Prototype for SoC2007 project "Add support for th
Updated: (XERCESJ 1259) Add SteamFilter Function to SoC2007 project "Add
Assigned: (XERCESJ 444) SAXException thrown by EntityResolver is reported
Google Summer of Code 2007
Xerces J and XInclude relative path issue
Assigned: (XERCESJ 206) Stack overflow when using a schema validation
Commented: (XERCESJ 1215) Restrictions involving two levels of substituti
Closed: (XERCESJ 1203) NPE in XMLDTDProcessor
non overriding equals methoda
Resolved: (XERCESJ 1079) invalid value returned for TOTALDIGITS facet in
Xerces AS3 port
Updated: (XERCESJ 325) Regular Expression; Pattern "| " clause order de
Updated: (XERCESJ 1196) Javadoc generation fails on Java SE 5 0
Closed: (XERCESJ 1202) DTD validation on XIncluded documents when the sch
Created: (XERCESJ 1124) Nonspecific schema error message
a bug in xerces
Updated: (XERCESJ 1201) Initial contribution for StAX Event API
Closed: (XERCESJ 1254) Empty uris in targetNamespace attribute not report
Links
Home
Oracle database error code
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
XML validation using xml schema string

XML validation using xml schema string

2003-01-22       - By Praveen Peddi
Reply:     1     2     3     4     5     6     7     8     9     10     >>  

As you said I wrote an EntityResolver but it didn't work. Could you send me
a sample code (just the validation code) if u already have one.

My validate method looks as follows:

public static void validateXmlAgainstLocalSchema(String XMLString, String
schemaString) throws SAXException{
  long startTime = System.currentTimeMillis();
           System.out.println("Files: XML:" + XMLString + " XSD:" +
schemaString);
           XMLReader parser = null;
           // Instantiate a parser
           try{
               parser =
XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
           } catch (org.xml.sax.SAXException ex){
               System.out.println("SAXException Exception");
   throw new SAXException("Error Obtaining the parser.");
           }

           try{

               // Register the error handler
               parser.setErrorHandler(new SchemaErrorHandler());


//parser.setFeature("http://apache.org/xml/features/continue-after-fatal-err
or", true);
               // Turn on validation

parser.setFeature("http://xml.org/sax/features/namespaces",true);
               parser.setFeature("http://xml.org/sax/features/validation",
true);

parser.setFeature("http://apache.org/xml/features/validation/schema",true);

parser.setFeature("http://apache.org/xml/features/validation/schema-full-che
cking",true);

//parser.setProperty("http://apache.org/xml/properties/schema/external-noNam
espaceSchemaLocation",Schema);
   parser.setEntityResolver(new SchemaEntityResolver(schemaString));


           } catch (org.xml.sax.SAXNotRecognizedException ex){
   ex.printStackTrace();
                   System.out.println("SAXNotRecognizedException
Exception");
           } catch (org.xml.sax.SAXNotSupportedException ex){
   ex.printStackTrace();
                   System.out.println("SAXNotSupportedException
Exception");
           }

           // Parse the document
           try{
               //String XMLSystemId = new
File(XMLString).toURL().toExternalForm();
               parser.parse(new InputSource(new StringReader(XMLString)));
   //parser.parse(XMLSystemId);
               System.out.println("Parsed Successfully by SAX Parser");
           } catch (org.xml.sax.SAXException ex){
               System.out.println("SAXException Exception");
   throw new SAXException("Error Validating the content XML.");
           } catch (java.io.IOException ex){
               System.out.println("IOException Exception");
   throw new SAXException("Error Validating the content XML.");
           } finally {
  long endTime = System.currentTimeMillis();
        System.out.println("Total time of
SAXValidate:"+(endTime-startTime));
  }
   }//SAXValidate

And SchemaEntityResolver looks as follows:

public class SchemaEntityResolver implements EntityResolver {
InputSource source = null;
public SchemaEntityResolver(String schemaString) {
 source = new InputSource(new StringReader(schemaString));
}

   public InputSource resolveEntity(String publicID, String systemID)
       throws SAXException {
           return source;
   }
}

When I try to validate an xml with the schema string, I get the following
error:
Line:    1
 URI:     null
 Message: cvc-elt.1: Cannot find the declaration of element 'content'.


Am I doing it wrong? If so please tell me how to use the entityresolver.

Praveen


----- Original Message -----
From: <sandygao@(protected)>
To: <xerces-j-user@(protected)>
Sent: Monday, January 20, 2003 10:18 AM
Subject: Re: XML validation using xml schema string


> Write an entity resolver
>
(http://xml.apache.org/xerces2-j/javadocs/api/org/xml/sax/EntityResolver.htm
l),
>
> and returned an input source with a StringReader when the schema document
> is asked.
>
> HTH,
> Sandy Gao
> Software Developer, IBM Canada
> (1-905) 413-3255
> sandygao@(protected)
>
>
>
>
>                       "Praveen Peddi"
>                       <ppeddi@(protected)        To:
<xerces-j-user@(protected)>
>                       dia.com>                 cc:
>                                                Subject:  Re: XML
validation using xml schema string
>                       01/20/2003 09:16
>                       AM
>                       Please respond to
>                       xerces-j-user
>
>
>
>
>
> Hi all,
> Last week I sent an email regarding the xml validation against the schema,
> but didn't get any reply. Please reply if any one has answer to my
> question. Is it possible to validate an xml document using a schema
> document (not the schema url) that is present with in the application. If
> its not possible, whats the best way of achieving it. Please read my
> previous email below.
>
> Thanks
> Praveen
>
>  Hi all,
>  I want to validate an xml document with an existing schema. I know there
>  is a code to do it when the schema is present as a URL. BUt in my case
>  schema is present with in the application memory (since it is stored in
>  the database) and that is not the url or on the hard disk.
>  I have the following method which validates only when the schema is
>  present externally. Note that the argument Schema is a URL:
>  public static void DOMValidate(String XMLfile, String Schema){
>    long startTime = System.currentTimeMillis();
>
>          // Instantiate the DOM parser.
>          DOMParser parser = new DOMParser();
>
>          // set the features
>          try{
>              parser.setFeature("http://xml.org/sax/features/namespaces
>  ",true);
>              parser.setFeature("http://xml.org/sax/features/validation",
>  true);
>              parser.setFeature("
>  http://apache.org/xml/features/validation/schema",true);
>              parser.setFeature("
>  http://apache.org/xml/features/validation/schema-full-checking",true);
>              // convert the xml file name to a URL
>              String SystemId = null;
>              try{
>                  SystemId = new File(Schema).toURL().toExternalForm();
>              } catch(java.net.MalformedURLException ex){
>                  //ex.printStackTrace();
>                  log.error(ex);
>              }
>              parser.setProperty("
>
http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation
>  ",SystemId);
>              // myErrorHandler is a descendant of ErrorHandler, it should
>  be set here to be able to catch parse errors
>              parser.setErrorHandler(new SchemaErrorHandler());
>
>          } catch (SAXNotSupportedException ex){
>              System.out.println("SAXNotSupportedException Exception");
>          } catch (SAXNotRecognizedException ex){
>                  System.out.println("SAXNotRecognizedException
Exception");
>          }
>
>          // parse the xml file, the errorhandler class has callbacks,
>          // so those will be called automatically there is a parse error
>          try{
>                  parser.parse(new File(XMLfile).toURL().toExternalForm());
>                  //System.out.println("Parsed Successfully by DOM
Parser");
>          } catch (org.xml.sax.SAXException ex){
>                  //System.out.println("SAXException Exception");
>                  //ex.printStackTrace();
>              log.error(ex);
>          } catch (java.io.IOException ex){
>                  System.out.println("IOException Exception");
>     } finally {
>     long endTime = System.currentTimeMillis();
>           //System.out.println("Total time of DOMValidate:"
>  +(endTime-startTime));
>
>   }
>
>      }
>
>  How can I do the validation if the Schema is the actual schema string not
>  the url. This looks like a common problem. I assume that its not
universal
>  that schema is not always stored externally.
>
>  Any suggestions are appreciated.
>
>  Praveen
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected)
> For additional commands, e-mail: xerces-j-user-help@(protected)
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@(protected)
For additional commands, e-mail: xerces-j-user-help@(protected)