Hi, It's likely this problem [1] with the SchemaFactory. We're working on it.
Thanks. [1] https://issues.apache.org/jira/browse/XERCESJ-1130 Michael Glavassevich XML Technologies and WAS Development IBM Toronto Lab E-mail: mrgla...@ca.ibm.com E-mail: mrgla...@apache.org dancerj...@gmail.com wrote on 22/08/2012 10:25:19 AM: > From: John Butler <john.joseph.but...@gmail.com> > To: j-users@xerces.apache.org, > Date: 22/08/2012 10:41 AM > Subject: Validate XML with loading schemas at runtime, failure > depending on schema order > Sent by: dancerj...@gmail.com > > I have posted this question on Stack Overflow here: > > http://stackoverflow.com/questions/11852311/validate-xml-with- > loading-schemas-at-runtime-failure-depending-on-schema-order > > I am trying to do xml validation. I am being given a list of schemas > at run-time (possibly wrapped in a jar). Validation passes or failes > based on the order in which I provide the schemas to the SchemaFactory. > > Here is what I am doing: > > > private void validateXml(String xml, List<URI> schemas){ > Source[] source = new StreamSource[schemas.size()]; > int i=0; > for (URI f : schemas){ > source[i++] = new StreamSource(f.openStream()); > } > > SchemaFactory sf = SchemaFactory.newInstance > (XMLConstants.W3C_XML_SCHEMA_NA_URI); > sf.setResourceResolver(new MyClassPathResourceResolver()); > > Schema schema = schemaFactory.newSchema(source); > Validator validator = schema.newValidator(); > validator.validate(new StreamSource(new > ByteArrayInputStream(xml.getBytes())); > > > again, this fails if the passed set of schema do not start with the > schema to which the root element of the xml referrs. Is there a fix > to this or am I doing something wrong? >