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-23       - By Jeff Greif
Reply:     1     2     3     4     5     6     7     8     9     10     >>  

Something like this (just typed into mail message, neither compiled nor
tested).

in main:

   DomParser parser = new DomParser();
   parser.setEntityResolver(new
MyEntityResolver(parser.getEntityResolver(),

mySchemaString, myfakeSchemaLocationURI));

class MyEntityResolver {
 InputSource source;
 EntityResolver defaultResolver;
 String fakeLocationURI;
  public MyEntityResolver(EntityResolver default, String mySchemaString,
String fakeLocationURI) {
     source = new InputSource(new StringReader(mySchemaString));
     defaultResolver = default;
      this.fakeLocationURI = fakeLocationURI;
 }
 public InputSource resolveEntity(String pubId, String sysId) {
     if ((pubId != null && pubId.equals(fakeLocationURI))
          || (sysId != null && sysId.equals(fakeLocationURI))) {
         return source;
   }
     return defaultResolver.resolveEntity(pubId, sysId);
 }

}

Jeff
----- Original Message -----
From: "Praveen Peddi" <ppeddi@(protected)>
To: <xerces-j-user@(protected)>
Sent: Thursday, January 23, 2003 10:51 AM
Subject: Re: XML validation using xml schema string


> Jeff,
> I think I didn't get you completely.
>
> Could you please write a sample code or modify my code below so that I can
> understand what you are syaing.
>
> Thanks
> Praveen
> ----- Original Message -----
> From: "Jeff Greif" <jgreif@(protected)>
> To: <xerces-j-user@(protected)>
> Sent: Thursday, January 23, 2003 11:28 AM
> Subject: Re: XML validation using xml schema string
>
>
> > I'm not able to give information correct in detail, but here is an
outline
> > of what must happen:
> >
> > The entity resolver is called with a namespace URI or a schema location
as
> > an argument, I think.  In the course of parsing your instance document
> (.xml
> > file), it will be called to process your schema's namespace and possibly
> > other namespaces (e.g. the XMLSchema-instance namespace) mentioned
> therein.
> > Probably you should get the default entity resolver for the parser
(which
> > knows how to handle some things, presumably), and create your own entity
> > resolver holding that one as a member.  Then when asked for a particular
> > schema by its namespace or location, if it's your schema, return the
input
> > source as your code below does, otherwise, pass the request to the
member
> > resolver which knows better than you what to do.
> >
> > Jeff
> >
> > ----- Original Message -----
> > From: "Praveen Peddi" <ppeddi@(protected)>
> > To: <xerces-j-user@(protected)>
> > Sent: Thursday, January 23, 2003 7:44 AM
> > Subject: Re: XML validation using xml schema string
> >
> >
> > > I posted a question yesterday about the validation of XML against the
> > local
> > > schema (in memory). Could anyone please look at the message below and
> > reply
> > > if you know the answer.
> > >
> > > Thanks in Advance.
> > >
> > > Praveen
> > > ----- Original Message -----
> > > From: "Praveen Peddi" <ppeddi@(protected)>
> > > To: <sandygao@(protected)>; <xerces-j-user@(protected)>
> > > Sent: Wednesday, January 22, 2003 1:35 PM
> > > Subject: Re: XML validation using xml schema string
> > >
> > >
> > > > 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)
> > > >
> > > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > 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)
> >
>
>
> ---------------------------------------------------------------------
> 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)