Java Examples for org.w3c.dom.ls.LSResourceResolver
The following java examples will help you to understand the usage of org.w3c.dom.ls.LSResourceResolver. These source code samples are taken from different open source projects.
Example 1
Project: wicket-stuff-markup-validator-master File: ValidatorImpl.java View source code |
private void doValidate(SAXSource source, ContentHandler contentHandler, LexicalHandler lexicalHandler, DTDHandler dtdHandler) throws SAXException, IOException {
XMLReader xr = source.getXMLReader();
if (xr == null) {
LSResourceResolver resourceResolver = handler.getResourceResolver();
if (cachedXMLReader != null && cachedResourceResolver == resourceResolver)
xr = cachedXMLReader;
else {
Resolver resolver = null;
if (resourceResolver != null)
resolver = LS.createResolver(resourceResolver);
xr = new SAXResolver(resolver).createXMLReader();
cachedXMLReader = xr;
cachedResourceResolver = resourceResolver;
}
}
handler.setContentHandler(contentHandler);
handler.setDTDHandler(dtdHandler);
// always set the lexical handler to avoid problems when reusing the XMLReader
try {
xr.setProperty(LEXICAL_HANDLER_PROPERTY, lexicalHandler);
} catch (SAXNotRecognizedException e) {
} catch (SAXNotSupportedException e) {
}
xr.setContentHandler(handler);
xr.setDTDHandler(handler);
ErrorHandler eh = handler.getErrorHandler();
if (eh == null)
eh = new DraconianErrorHandler();
xr.setErrorHandler(eh);
if (needReset)
handler.reset();
else
needReset = true;
xr.parse(source.getInputSource());
}
Example 2
Project: android-gradle-plugin-master File: ValidateTestCase.java View source code |
/**
* Validates an XSD stream against the w3.org XSD schema.
*/
protected void validateXsd(InputStream repoXsdStream) throws SAXException, IOException {
final Class<? extends ValidateTestCase> clazz = this.getClass();
InputStream xsdXsdStream = clazz.getResourceAsStream("/com/android/sdklib/testdata/www.w3.org/2001/XMLSchema.xsd");
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
factory.setResourceResolver(new LSResourceResolver() {
@Override
public LSInput resolveResource(String type, String namespaceURI, final String publicId, final String systemId, final String baseURI) {
if (systemId != null) {
String resName = "/com/android/sdklib/testdata/www.w3.org/2001/";
int pos = systemId.lastIndexOf('/');
if (pos < 0) {
resName += systemId;
} else {
resName += systemId.substring(pos + 1);
}
final InputStream stream = clazz.getResourceAsStream(resName);
if (stream == null) {
fail("XSD validation requires missing file: " + resName);
}
return new LSInput() {
@SuppressWarnings("hiding")
@Override
public void setSystemId(String systemId) {
}
@Override
public void setStringData(String stringData) {
}
@SuppressWarnings("hiding")
@Override
public void setPublicId(String publicId) {
}
@Override
public void setEncoding(String encoding) {
}
@Override
public void setCharacterStream(Reader characterStream) {
}
@Override
public void setCertifiedText(boolean certifiedText) {
}
@Override
public void setByteStream(InputStream byteStream) {
}
@SuppressWarnings("hiding")
@Override
public void setBaseURI(String baseURI) {
}
@Override
public String getSystemId() {
return systemId;
}
@Override
public String getStringData() {
return null;
}
@Override
public String getPublicId() {
return publicId;
}
@Override
public String getEncoding() {
return null;
}
@Override
public Reader getCharacterStream() {
return null;
}
@Override
public boolean getCertifiedText() {
return false;
}
@Override
public InputStream getByteStream() {
return stream;
}
@Override
public String getBaseURI() {
return baseURI;
}
};
}
return null;
}
});
Schema schema = factory.newSchema(new StreamSource(xsdXsdStream));
Validator validator = schema.newValidator();
CaptureErrorHandler handler = new CaptureErrorHandler();
validator.setErrorHandler(handler);
validator.validate(new StreamSource(repoXsdStream));
handler.verify();
}
Example 3
Project: android-platform-tools-base-master File: ValidateTestCase.java View source code |
/**
* Validates an XSD stream against the w3.org XSD schema.
*/
protected void validateXsd(InputStream repoXsdStream) throws SAXException, IOException {
final Class<? extends ValidateTestCase> clazz = this.getClass();
InputStream xsdXsdStream = clazz.getResourceAsStream("/com/android/sdklib/testdata/www.w3.org/2001/XMLSchema.xsd");
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
factory.setResourceResolver(new LSResourceResolver() {
@Override
public LSInput resolveResource(String type, String namespaceURI, final String publicId, final String systemId, final String baseURI) {
if (systemId != null) {
String resName = "/com/android/sdklib/testdata/www.w3.org/2001/";
int pos = systemId.lastIndexOf('/');
if (pos < 0) {
resName += systemId;
} else {
resName += systemId.substring(pos + 1);
}
final InputStream stream = clazz.getResourceAsStream(resName);
if (stream == null) {
fail("XSD validation requires missing file: " + resName);
}
return new LSInput() {
@SuppressWarnings("hiding")
@Override
public void setSystemId(String systemId) {
}
@Override
public void setStringData(String stringData) {
}
@SuppressWarnings("hiding")
@Override
public void setPublicId(String publicId) {
}
@Override
public void setEncoding(String encoding) {
}
@Override
public void setCharacterStream(Reader characterStream) {
}
@Override
public void setCertifiedText(boolean certifiedText) {
}
@Override
public void setByteStream(InputStream byteStream) {
}
@SuppressWarnings("hiding")
@Override
public void setBaseURI(String baseURI) {
}
@Override
public String getSystemId() {
return systemId;
}
@Override
public String getStringData() {
return null;
}
@Override
public String getPublicId() {
return publicId;
}
@Override
public String getEncoding() {
return null;
}
@Override
public Reader getCharacterStream() {
return null;
}
@Override
public boolean getCertifiedText() {
return false;
}
@Override
public InputStream getByteStream() {
return stream;
}
@Override
public String getBaseURI() {
return baseURI;
}
};
}
return null;
}
});
Schema schema = factory.newSchema(new StreamSource(xsdXsdStream));
Validator validator = schema.newValidator();
CaptureErrorHandler handler = new CaptureErrorHandler();
validator.setErrorHandler(handler);
validator.validate(new StreamSource(repoXsdStream));
handler.verify();
}
Example 4
Project: camel-master File: ValidatorWithResourceResolverRouteTest.java View source code |
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
// we have to do it here, because we need the context created first
CatalogManager.getStaticManager().setIgnoreMissingProperties(true);
CatalogResolver catalogResolver = new CatalogResolver(true);
URL catalogUrl = ResourceHelper.resolveMandatoryResourceAsUrl(context.getClassResolver(), "org/apache/camel/component/validator/catalog.cat");
catalogResolver.getCatalog().parseCatalog(catalogUrl);
LSResourceResolver resourceResolver = new CatalogLSResourceResolver(catalogResolver);
JndiRegistry registry = (JndiRegistry) ((PropertyPlaceholderDelegateRegistry) context.getRegistry()).getRegistry();
registry.bind("resourceResolver", resourceResolver);
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start").doTry().to("validator:org/apache/camel/component/validator/report.xsd?resourceResolver=#resourceResolver").to("mock:valid").doCatch(ValidationException.class).to("mock:invalid").doFinally().to("mock:finally").end();
}
};
}
Example 5
Project: nazgul_core-master File: JaxbUtils.java View source code |
/** * Acquires a JAXB Schema from the provided JAXBContext. * * @param ctx The context for which am XSD should be constructed. * @return A tuple holding the constructed XSD from the provided JAXBContext, and * the LSResourceResolver synthesized during the way. * @throws NullPointerException if ctx was {@code null}. * @throws IllegalArgumentException if a JAXB-related exception occurred while extracting the schema. */ public static Tuple<Schema, LSResourceResolver> generateTransientXSD(@NotNull final JAXBContext ctx) throws NullPointerException, IllegalArgumentException { // Check sanity Validate.notNull(ctx, "ctx"); final SortedMap<String, ByteArrayOutputStream> namespace2SchemaMap = new TreeMap<String, ByteArrayOutputStream>(); try { ctx.generateSchema(new SchemaOutputResolver() { @Override public Result createOutput(final String namespaceUri, final String suggestedFileName) throws IOException { // to avoid using the default ("") namespace. if (namespaceUri.isEmpty()) { log.warn("Received empty namespaceUri while resolving a generated schema. " + "Did you forget to add a @XmlType(namespace = \"... something ...\") annotation " + "to your class?"); } // Create the result ByteArrayOutputStream final ByteArrayOutputStream out = new ByteArrayOutputStream(); final StreamResult toReturn = new StreamResult(out); toReturn.setSystemId(""); // Map the namespaceUri to the schemaResult. namespace2SchemaMap.put(namespaceUri, out); // All done. return toReturn; } }); } catch (IOException e) { throw new IllegalArgumentException("Could not acquire Schema snippets.", e); } // Convert to an array of StreamSource. final MappedSchemaResourceResolver resourceResolver = new MappedSchemaResourceResolver(); final StreamSource[] schemaSources = new StreamSource[namespace2SchemaMap.size()]; int counter = 0; for (Map.Entry<String, ByteArrayOutputStream> current : namespace2SchemaMap.entrySet()) { final byte[] schemaSnippetAsBytes = current.getValue().toByteArray(); resourceResolver.addNamespace2SchemaEntry(current.getKey(), new String(schemaSnippetAsBytes)); if (log.isDebugEnabled()) { log.info("Generated schema [" + (counter + 1) + "/" + schemaSources.length + "]:\n " + new String(schemaSnippetAsBytes)); } // Copy the schema source to the schemaSources array. schemaSources[counter] = new StreamSource(new ByteArrayInputStream(schemaSnippetAsBytes), ""); // Increase the counter counter++; } try { // All done. final SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); schemaFactory.setResourceResolver(resourceResolver); final Schema transientSchema = schemaFactory.newSchema(schemaSources); // All done. return new Tuple<Schema, LSResourceResolver>(transientSchema, resourceResolver); } catch (final SAXException e) { throw new IllegalArgumentException("Could not create Schema from snippets.", e); } }
Example 6
Project: openjdk-master File: XMLSchemaLoader.java View source code |
/* (non-Javadoc) * @see DOMConfiguration#setParameter(String, Object) */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); if (name.equals("validate") && state) { return; } try { setFeature(name, state); } catch (Exception e) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } return; } if (name.equals(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); setErrorHandler(fErrorHandler); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } return; } if (name.equals(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver) { try { fResourceResolver = new DOMEntityResolverWrapper((LSResourceResolver) value); setEntityResolver(fResourceResolver); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } return; } try { setProperty(name, value); } catch (Exception ex) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } }
Example 7
Project: cdi-tck-master File: EjbJarDescriptorBuilderTest.java View source code |
@Test
public void testDescriptorIsValid() throws ParserConfigurationException, SAXException, DescriptorExportException, IOException {
EjbJarDescriptor ejbJarDescriptor = new EjbJarDescriptorBuilder().messageDrivenBeans(newMessageDriven("TestQueue", QueueMessageDrivenBean.class.getName()).addActivationConfigProperty("acknowledgeMode", "Auto-acknowledge").addActivationConfigProperty("destinationType", "javax.jms.Queue").addActivationConfigProperty("destinationLookup", "test_queue"), newMessageDriven("TestTopic", TopicMessageDrivenBean.class.getName()).addActivationConfigProperty("acknowledgeMode", "Auto-acknowledge").addActivationConfigProperty("destinationType", "javax.jms.Topic").addActivationConfigProperty("destinationLookup", "test_topic")).build();
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFactory.setResourceResolver(new LSResourceResolver() {
@Override
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
try {
if (systemId.startsWith("http")) {
// Ugly workaround for xml.xsd
systemId = StringUtils.substringAfterLast(systemId, "/");
}
return new Input(publicId, systemId, new FileInputStream(new File("src/test/resources/xsd", systemId)));
} catch (FileNotFoundException e) {
throw new IllegalStateException();
}
}
});
schemaFactory.setErrorHandler(new ErrorHandler() {
@Override
public void warning(SAXParseException exception) throws SAXException {
}
@Override
public void fatalError(SAXParseException exception) throws SAXException {
throw exception;
}
@Override
public void error(SAXParseException exception) throws SAXException {
throw exception;
}
});
Source schemaFile = new StreamSource(new FileInputStream(new File("src/test/resources/xsd", "ejb-jar_3_1.xsd")));
Schema schema = schemaFactory.newSchema(schemaFile);
Validator validator = schema.newValidator();
validator.validate(new StreamSource(new ByteArrayInputStream(ejbJarDescriptor.exportAsString().getBytes())));
}
Example 8
Project: classlib6-master File: DOMParserImpl.java View source code |
/** * Set parameters and properties */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); try { if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) { fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)) { fConfiguration.setFeature(NORMALIZE_DATA, state); } else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) { fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, state); } else if (name.equalsIgnoreCase(Constants.DOM_DISALLOW_DOCTYPE)) { fConfiguration.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)) { if (state) { // true is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting those features to false is no-op } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) { fConfiguration.setFeature(NAMESPACES, state); } else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) { // Setting false has no effect. if (state) { // true: namespaces, namespace-declarations, // comments, element-content-whitespace fConfiguration.setFeature(NAMESPACES, true); fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); // false: validate-if-schema, entities, // datatype-normalization, cdata-sections fConfiguration.setFeature(DYNAMIC_VALIDATION, false); fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); fConfiguration.setFeature(NORMALIZE_DATA, false); fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) { fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); } else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED) || name.equalsIgnoreCase(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { if (!state) { // false is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting these features to true is no-op // REVISIT: implement "namespace-declaration" feature } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) { fConfiguration.setFeature(VALIDATION_FEATURE, state); if (fSchemaType != Constants.NS_DTD) { fConfiguration.setFeature(XMLSCHEMA, state); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, state); } if (state) { fConfiguration.setFeature(DYNAMIC_VALIDATION, false); } } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)) { fConfiguration.setFeature(DYNAMIC_VALIDATION, state); // Note: validation and dynamic validation are mutually exclusive if (state) { fConfiguration.setFeature(VALIDATION_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, state); } else if (name.equalsIgnoreCase(Constants.DOM_PSVI)) { //XSModel - turn on PSVI augmentation fConfiguration.setFeature(PSVI_AUGMENT, true); fConfiguration.setProperty(DOCUMENT_CLASS_NAME, "com.sun.org.apache.xerces.internal.dom.PSVIDocumentImpl"); } else { // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, // Constants.DOM_SPLIT_CDATA feature, // or any Xerces feature fConfiguration.setFeature(name.toLowerCase(Locale.ENGLISH), state); } } catch (XMLConfigurationException e) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } else { // set properties if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler || value == null) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); fConfiguration.setProperty(ERROR_HANDLER, fErrorHandler); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver || value == null) { try { fConfiguration.setProperty(ENTITY_RESOLVER, new DOMEntityResolverWrapper((LSResourceResolver) value)); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) { if (value instanceof String || value == null) { try { if (value == null) { fSchemaLocation = null; fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, null); } else { fSchemaLocation = (String) value; // map DOM schema-location to JAXP schemaSource property // tokenize location string StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r"); if (t.hasMoreTokens()) { fSchemaLocations.clear(); fSchemaLocations.add(t.nextToken()); while (t.hasMoreTokens()) { fSchemaLocations.add(t.nextToken()); } fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, fSchemaLocations.toArray()); } else { fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, value); } } } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) { if (value instanceof String || value == null) { try { if (value == null) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, null); fSchemaType = null; } else if (value.equals(Constants.NS_XMLSCHEMA)) { // turn on schema features fConfiguration.setFeature(XMLSCHEMA, true); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, true); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_XMLSCHEMA); fSchemaType = Constants.NS_XMLSCHEMA; } else if (value.equals(Constants.NS_DTD)) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_DTD); fSchemaType = Constants.NS_DTD; } } catch (XMLConfigurationException e) { } } else { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(DOCUMENT_CLASS_NAME)) { fConfiguration.setProperty(DOCUMENT_CLASS_NAME, value); } else { // REVISIT: check if this is a boolean parameter -- type mismatch should be thrown. //parameter is not recognized String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } }
Example 9
Project: cxf-master File: JAXBDataBinding.java View source code |
public void validateSchema(Element ele, String uri, final OASISCatalogManager catalog, final SchemaCollection schemaCollection) throws ToolException {
SchemaFactory schemaFact = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFact.setResourceResolver(new LSResourceResolver() {
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
String s = JAXBDataBinding.mapSchemaLocation(systemId, baseURI, catalog);
//System.out.println(namespaceURI + " " + systemId + " " + baseURI + " " + s);
if (s == null) {
XmlSchema sc = schemaCollection.getSchemaByTargetNamespace(namespaceURI);
StringWriter writer = new StringWriter();
sc.write(writer);
InputSource src = new InputSource(new StringReader(writer.toString()));
src.setSystemId(sc.getSourceURI());
return new LSInputSAXWrapper(src);
}
return new LSInputSAXWrapper(new InputSource(s));
}
});
DOMSource domSrc = new DOMSource(ele, uri);
try {
schemaFact.newSchema(domSrc);
} catch (SAXException e) {
if (e.getLocalizedMessage().indexOf("src-resolve.4.2") > -1) {
} else {
throw new ToolException("Schema Error : " + e.getLocalizedMessage(), e);
}
}
}
Example 10
Project: ikvm-openjdk-master File: DOMParserImpl.java View source code |
/** * Set parameters and properties */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); try { if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) { fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)) { fConfiguration.setFeature(NORMALIZE_DATA, state); } else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) { fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, state); } else if (name.equalsIgnoreCase(Constants.DOM_DISALLOW_DOCTYPE)) { fConfiguration.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)) { if (state) { // true is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting those features to false is no-op } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) { fConfiguration.setFeature(NAMESPACES, state); } else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) { // Setting false has no effect. if (state) { // true: namespaces, namespace-declarations, // comments, element-content-whitespace fConfiguration.setFeature(NAMESPACES, true); fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); // false: validate-if-schema, entities, // datatype-normalization, cdata-sections fConfiguration.setFeature(DYNAMIC_VALIDATION, false); fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); fConfiguration.setFeature(NORMALIZE_DATA, false); fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) { fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); } else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED) || name.equalsIgnoreCase(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { if (!state) { // false is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting these features to true is no-op // REVISIT: implement "namespace-declaration" feature } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) { fConfiguration.setFeature(VALIDATION_FEATURE, state); if (fSchemaType != Constants.NS_DTD) { fConfiguration.setFeature(XMLSCHEMA, state); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, state); } if (state) { fConfiguration.setFeature(DYNAMIC_VALIDATION, false); } } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)) { fConfiguration.setFeature(DYNAMIC_VALIDATION, state); // Note: validation and dynamic validation are mutually exclusive if (state) { fConfiguration.setFeature(VALIDATION_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, state); } else if (name.equalsIgnoreCase(Constants.DOM_PSVI)) { //XSModel - turn on PSVI augmentation fConfiguration.setFeature(PSVI_AUGMENT, true); fConfiguration.setProperty(DOCUMENT_CLASS_NAME, "com.sun.org.apache.xerces.internal.dom.PSVIDocumentImpl"); } else { // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, // Constants.DOM_SPLIT_CDATA feature, // or any Xerces feature fConfiguration.setFeature(name.toLowerCase(Locale.ENGLISH), state); } } catch (XMLConfigurationException e) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } else { // set properties if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler || value == null) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); fConfiguration.setProperty(ERROR_HANDLER, fErrorHandler); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver || value == null) { try { fConfiguration.setProperty(ENTITY_RESOLVER, new DOMEntityResolverWrapper((LSResourceResolver) value)); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) { if (value instanceof String || value == null) { try { if (value == null) { fSchemaLocation = null; fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, null); } else { fSchemaLocation = (String) value; // map DOM schema-location to JAXP schemaSource property // tokenize location string StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r"); if (t.hasMoreTokens()) { fSchemaLocations.clear(); fSchemaLocations.add(t.nextToken()); while (t.hasMoreTokens()) { fSchemaLocations.add(t.nextToken()); } fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, fSchemaLocations.toArray()); } else { fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, value); } } } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) { if (value instanceof String || value == null) { try { if (value == null) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, null); fSchemaType = null; } else if (value.equals(Constants.NS_XMLSCHEMA)) { // turn on schema features fConfiguration.setFeature(XMLSCHEMA, true); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, true); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_XMLSCHEMA); fSchemaType = Constants.NS_XMLSCHEMA; } else if (value.equals(Constants.NS_DTD)) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_DTD); fSchemaType = Constants.NS_DTD; } } catch (XMLConfigurationException e) { } } else { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(DOCUMENT_CLASS_NAME)) { fConfiguration.setProperty(DOCUMENT_CLASS_NAME, value); } else { // REVISIT: check if this is a boolean parameter -- type mismatch should be thrown. //parameter is not recognized String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } }
Example 11
Project: ManagedRuntimeInitiative-master File: DOMParserImpl.java View source code |
/** * Set parameters and properties */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); try { if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) { fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)) { fConfiguration.setFeature(NORMALIZE_DATA, state); } else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) { fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, state); } else if (name.equalsIgnoreCase(Constants.DOM_DISALLOW_DOCTYPE)) { fConfiguration.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)) { if (state) { // true is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting those features to false is no-op } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) { fConfiguration.setFeature(NAMESPACES, state); } else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) { // Setting false has no effect. if (state) { // true: namespaces, namespace-declarations, // comments, element-content-whitespace fConfiguration.setFeature(NAMESPACES, true); fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); // false: validate-if-schema, entities, // datatype-normalization, cdata-sections fConfiguration.setFeature(DYNAMIC_VALIDATION, false); fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); fConfiguration.setFeature(NORMALIZE_DATA, false); fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) { fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); } else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED) || name.equalsIgnoreCase(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { if (!state) { // false is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting these features to true is no-op // REVISIT: implement "namespace-declaration" feature } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) { fConfiguration.setFeature(VALIDATION_FEATURE, state); if (fSchemaType != Constants.NS_DTD) { fConfiguration.setFeature(XMLSCHEMA, state); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, state); } if (state) { fConfiguration.setFeature(DYNAMIC_VALIDATION, false); } } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)) { fConfiguration.setFeature(DYNAMIC_VALIDATION, state); // Note: validation and dynamic validation are mutually exclusive if (state) { fConfiguration.setFeature(VALIDATION_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, state); } else if (name.equalsIgnoreCase(Constants.DOM_PSVI)) { //XSModel - turn on PSVI augmentation fConfiguration.setFeature(PSVI_AUGMENT, true); fConfiguration.setProperty(DOCUMENT_CLASS_NAME, "com.sun.org.apache.xerces.internal.dom.PSVIDocumentImpl"); } else { // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, // Constants.DOM_SPLIT_CDATA feature, // or any Xerces feature fConfiguration.setFeature(name.toLowerCase(Locale.ENGLISH), state); } } catch (XMLConfigurationException e) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } else { // set properties if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler || value == null) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); fConfiguration.setProperty(ERROR_HANDLER, fErrorHandler); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver || value == null) { try { fConfiguration.setProperty(ENTITY_RESOLVER, new DOMEntityResolverWrapper((LSResourceResolver) value)); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) { if (value instanceof String || value == null) { try { if (value == null) { fSchemaLocation = null; fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, null); } else { fSchemaLocation = (String) value; // map DOM schema-location to JAXP schemaSource property // tokenize location string StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r"); if (t.hasMoreTokens()) { fSchemaLocations.clear(); fSchemaLocations.add(t.nextToken()); while (t.hasMoreTokens()) { fSchemaLocations.add(t.nextToken()); } fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, fSchemaLocations.toArray()); } else { fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, value); } } } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) { if (value instanceof String || value == null) { try { if (value == null) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, null); fSchemaType = null; } else if (value.equals(Constants.NS_XMLSCHEMA)) { // turn on schema features fConfiguration.setFeature(XMLSCHEMA, true); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, true); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_XMLSCHEMA); fSchemaType = Constants.NS_XMLSCHEMA; } else if (value.equals(Constants.NS_DTD)) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_DTD); fSchemaType = Constants.NS_DTD; } } catch (XMLConfigurationException e) { } } else { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(DOCUMENT_CLASS_NAME)) { fConfiguration.setProperty(DOCUMENT_CLASS_NAME, value); } else { // REVISIT: check if this is a boolean parameter -- type mismatch should be thrown. //parameter is not recognized String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } }
Example 12
Project: oxAuth-master File: FacesConfigPopulator.java View source code |
/**
* Validates *.faces-config.xml file
*
* @param xml
* @return
*/
private boolean isValidFacesConfig(InputStream xml) {
try {
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER);
InputStream xsd = this.getClass().getResourceAsStream(FACES_2_2_XSD);
Schema schema = factory.newSchema(new StreamSource(xsd));
Validator validator = schema.newValidator();
validator.validate(new StreamSource(xml));
return true;
} catch (Exception ex) {
return false;
}
}
Example 13
Project: Shindig-master File: XSDValidator.java View source code |
/** * Validate a xml input stream against a supplied schema. * * @param xml * a stream containing the xml * @param schema * a stream containing the schema * @return a list of errors or warnings, a 0 lenght string if none. */ public static String validate(InputStream xml, InputStream schema) { SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(true); factory.setValidating(true); final StringBuilder errors = new StringBuilder(); try { SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA); Schema s = schemaFactory.newSchema(new StreamSource(schema)); Validator validator = s.newValidator(); final LSResourceResolver lsr = validator.getResourceResolver(); validator.setResourceResolver(new LSResourceResolver() { public LSInput resolveResource(String arg0, String arg1, String arg2, String arg3, String arg4) { log.info("resolveResource(" + arg0 + "," + arg1 + "," + arg2 + "," + arg3 + "," + arg4 + ")"); return lsr.resolveResource(arg0, arg1, arg2, arg3, arg4); } }); validator.validate(new StreamSource(xml)); } catch (IOException e) { } catch (SAXException e) { errors.append(e.getMessage()).append("\n"); } return errors.toString(); }
Example 14
Project: aries-master File: SimpleNamespaceHandlerSet.java View source code |
public Schema getSchema() throws SAXException, IOException {
if (schema == null) {
final List<StreamSource> schemaSources = new ArrayList<StreamSource>();
final List<InputStream> streams = new ArrayList<InputStream>();
try {
InputStream is = getClass().getResourceAsStream("/org/apache/aries/blueprint/blueprint.xsd");
streams.add(is);
schemaSources.add(new StreamSource(is));
for (URI uri : namespaces.keySet()) {
is = namespaces.get(uri).openStream();
streams.add(is);
schemaSources.add(new StreamSource(is));
}
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFactory.setResourceResolver(new LSResourceResolver() {
public LSInput resolveResource(String type, String namespace, String publicId, String systemId, String baseURI) {
try {
URL namespaceURL = namespaces.get(URI.create(namespace));
if (systemId != null && namespaceURL != null) {
URI systemIdUri = namespaceURL.toURI();
if (!URI.create(systemId).isAbsolute()) {
systemIdUri = systemIdUri.resolve(systemId);
}
if (!systemIdUri.isAbsolute() && "jar".equals(namespaceURL.getProtocol())) {
String urlString = namespaceURL.toString();
int jarFragmentIndex = urlString.lastIndexOf('!');
if (jarFragmentIndex > 0 && jarFragmentIndex < urlString.length() - 1) {
String jarUrlOnly = urlString.substring(0, jarFragmentIndex);
String oldFragment = urlString.substring(jarFragmentIndex + 1);
String newFragment = URI.create(oldFragment).resolve(systemId).toString();
String newJarUri = jarUrlOnly + '!' + newFragment;
systemIdUri = URI.create(newJarUri);
}
}
InputStream resourceStream = systemIdUri.toURL().openStream();
return new LSInputImpl(publicId, systemId, resourceStream);
}
} catch (Exception ex) {
}
return null;
}
});
schema = schemaFactory.newSchema(schemaSources.toArray(new Source[schemaSources.size()]));
} finally {
for (InputStream is : streams) {
is.close();
}
}
}
return schema;
}
Example 15
Project: Consent2Share-master File: XmlValidation.java View source code |
/**
* Creates the schema.
*
* @param xsdInputStream
* the xsd input stream
* @param resourceResolver
* the resource resolver
* @return the schema
* @throws XmlSchemaFailureException
* the xml schema failure exception
*/
private Schema createSchema(InputStream xsdInputStream, LSResourceResolver resourceResolver) throws XmlSchemaFailureException {
final SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
final Source schemaSource = new StreamSource(xsdInputStream);
if (resourceResolver != null) {
factory.setResourceResolver(resourceResolver);
}
Schema schema;
try {
schema = factory.newSchema(schemaSource);
} catch (final SAXException e) {
logger.error(e.getMessage());
throw new XmlSchemaFailureException(e);
}
return schema;
}
Example 16
Project: gatein-shindig-master File: XSDValidator.java View source code |
/** * Validate a xml input stream against a supplied schema. * * @param xml * a stream containing the xml * @param schema * a stream containing the schema * @return a list of errors or warnings, a 0 lenght string if none. */ public static String validate(InputStream xml, InputStream schema) { SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(true); factory.setValidating(true); final StringBuilder errors = new StringBuilder(); try { SchemaFactory schemaFactory = SchemaFactory.newInstance(W3C_XML_SCHEMA); Schema s = schemaFactory.newSchema(new StreamSource(schema)); Validator validator = s.newValidator(); final LSResourceResolver lsr = validator.getResourceResolver(); validator.setResourceResolver(new LSResourceResolver() { public LSInput resolveResource(String arg0, String arg1, String arg2, String arg3, String arg4) { log.info("resolveResource(" + arg0 + ',' + arg1 + ',' + arg2 + ',' + arg3 + ',' + arg4 + ')'); return lsr.resolveResource(arg0, arg1, arg2, arg3, arg4); } }); validator.validate(new StreamSource(xml)); } catch (IOException e) { } catch (SAXException e) { errors.append(e.getMessage()).append('\n'); } return errors.toString(); }
Example 17
Project: iaf-master File: JavaxXmlValidator.java View source code |
protected String validate(Source source, IPipeLineSession session) throws XmlValidatorException, ConfigurationException, PipeRunException {
init();
String schemasId = schemasProvider.getSchemasId();
if (schemasId == null) {
schemasId = schemasProvider.getSchemasId(session);
getSchemaObject(schemasId, schemasProvider.getSchemas(session));
}
Schema xsd = javaxSchemas.get(schemasId);
try {
Validator validator = xsd.newValidator();
validator.setResourceResolver(new LSResourceResolver() {
public LSInput resolveResource(String s, String s1, String s2, String s3, String s4) {
System.out.println("--");
//To change body of implemented methods Settings | File Templates.
return null;
}
});
validator.setErrorHandler(new ErrorHandler() {
public void warning(SAXParseException e) throws SAXException {
LOG.warn(e.getMessage());
}
public void error(SAXParseException e) throws SAXException {
LOG.error(e.getMessage());
}
public void fatalError(SAXParseException e) throws SAXException {
LOG.error(e.getMessage());
}
});
//validator.setFeature("http://xml.org/sax/features/namespace-prefixes", true); /// DOESNT" WORK any more?
validator.validate(source);
} catch (SAXException e) {
throw new XmlValidatorException(e.getClass() + " " + e.getMessage());
} catch (IOException e) {
throw new XmlValidatorException(e.getMessage(), e);
}
return XML_VALIDATOR_VALID_MONITOR_EVENT;
}
Example 18
Project: jaxb-master File: SchemaCompilerImpl.java View source code |
public JAXBModelImpl bind() {
// this also takes care of the binding files given in the -episode option.
for (InputSource is : opts.getBindFiles()) parseSchema(is);
// internalization
SCDBasedBindingSet scdBasedBindingSet = forest.transform(opts.isExtensionMode());
if (!NO_CORRECTNESS_CHECK) {
// correctness check
SchemaFactory sf = XmlFactory.createSchemaFactory(XMLConstants.W3C_XML_SCHEMA_NS_URI, opts.disableXmlSecurity);
// taken from SchemaConstraintChecker, TODO XXX FIXME UGLY
if (opts.entityResolver != null) {
sf.setResourceResolver(new LSResourceResolver() {
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
try {
// XSOM passes the namespace URI to the publicID parameter.
// we do the same here .
InputSource is = opts.entityResolver.resolveEntity(namespaceURI, systemId);
if (is == null)
return null;
return new LSInputSAXWrapper(is);
} catch (SAXException e) {
return null;
} catch (IOException e) {
return null;
}
}
});
}
sf.setErrorHandler(new DowngradingErrorHandler(this));
forest.weakSchemaCorrectnessCheck(sf);
if (hadError)
// error in the correctness check. abort now
return null;
}
JCodeModel codeModel = new JCodeModel();
ModelLoader gl = new ModelLoader(opts, codeModel, this);
try {
XSSchemaSet result = gl.createXSOM(forest, scdBasedBindingSet);
if (result == null)
return null;
// we need info about each field, so we go ahead and generate the
// skeleton at this point.
// REVISIT: we should separate FieldRenderer and FieldAccessor
// so that accessors can be used before we build the code.
Model model = gl.annotateXMLSchema(result);
if (model == null)
return null;
// if we have any error by now, abort
if (hadError)
return null;
model.setPackageLevelAnnotations(opts.packageLevelAnnotations);
Outline context = model.generateCode(opts, this);
if (context == null)
return null;
if (hadError)
return null;
return new JAXBModelImpl(context);
} catch (SAXException e) {
return null;
}
}
Example 19
Project: service-proxy-master File: ResolverMap.java View source code |
public LSResourceResolver toLSResourceResolver() { return new LSResourceResolver() { @Override public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) { if (systemId == null) return null; try { if (!systemId.contains("://")) systemId = new URI(baseURI).resolve(systemId).toString(); return new LSInputImpl(publicId, systemId, resolve(systemId)); } catch (Exception e) { throw new RuntimeException(e); } } }; }
Example 20
Project: archive-ddf-spatial-master File: TestFeatureCollectionMessageBodyWriter.java View source code |
@Test
public void testWriteToGeneratesGMLConformantXml() throws IOException, WebApplicationException, SAXException {
FeatureCollectionMessageBodyWriter wtr = new FeatureCollectionMessageBodyWriter();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
wtr.writeTo(getWfsFeatureCollection(), null, null, null, null, null, stream);
String actual = stream.toString();
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFactory.setResourceResolver(new LSResourceResolver() {
private Map<String, String> schemaLocations;
private Map<String, LSInput> inputs;
{
inputs = new HashMap<String, LSInput>();
schemaLocations = new HashMap<String, String>();
schemaLocations.put("xml.xsd", "/w3/1999/xml.xsd");
schemaLocations.put("xlink.xsd", "/w3/1999/xlink.xsd");
schemaLocations.put("geometry.xsd", "/gml/2.1.2/geometry.xsd");
schemaLocations.put("feature.xsd", "/gml/2.1.2/feature.xsd");
schemaLocations.put("gml.xsd", "/gml/2.1.2/gml.xsd");
schemaLocations.put("expr.xsd", "/filter/1.0.0/expr.xsd");
schemaLocations.put("filter.xsd", "/filter/1.0.0/filter.xsd");
schemaLocations.put("filterCapabilities.xsd", "/filter/1.0.0/filterCapabilties.xsd");
schemaLocations.put("WFS-capabilities.xsd", "/wfs/1.0.0/WFS-capabilities.xsd");
schemaLocations.put("OGC-exception.xsd", "/wfs/1.0.0/OGC-exception.xsd");
schemaLocations.put("WFS-basic.xsd", "/wfs/1.0.0/WFS-basic.xsd");
schemaLocations.put("WFS-transaction.xsd", "/wfs/1.0.0/WFS-transaction.xsd");
schemaLocations.put("wfs.xsd", "/wfs/1.0.0/wfs.xsd");
}
@Override
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
String fileName = new java.io.File(systemId).getName();
if (inputs.containsKey(fileName)) {
return inputs.get(fileName);
}
LSInput input = new DOMInputImpl();
InputStream is = getClass().getResourceAsStream(schemaLocations.get(fileName));
input.setByteStream(is);
input.setBaseURI(baseURI);
input.setSystemId(systemId);
inputs.put(fileName, input);
return input;
}
});
Source wfsSchemaSource = new StreamSource(getClass().getResourceAsStream("/wfs/1.0.0/wfs.xsd"));
Source testSchemaSource = new StreamSource(getClass().getResourceAsStream("/schema.xsd"));
Schema schema = schemaFactory.newSchema(new Source[] { wfsSchemaSource, testSchemaSource });
try {
schema.newValidator().validate(new StreamSource(new StringReader(actual)));
} catch (Exception e) {
fail("Generated GML Response does not conform to WFS Schema" + e.getMessage());
}
}
Example 21
Project: ddf-catalog-master File: TestFeatureCollectionMessageBodyWriter.java View source code |
@Test
public void testWriteToGeneratesGMLConformantXml() throws IOException, WebApplicationException, SAXException {
FeatureCollectionMessageBodyWriter wtr = new FeatureCollectionMessageBodyWriter();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
wtr.writeTo(getWfsFeatureCollection(), null, null, null, null, null, stream);
String actual = stream.toString();
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFactory.setResourceResolver(new LSResourceResolver() {
private Map<String, String> schemaLocations;
private Map<String, LSInput> inputs;
{
inputs = new HashMap<String, LSInput>();
schemaLocations = new HashMap<String, String>();
schemaLocations.put("xml.xsd", "/w3/1999/xml.xsd");
schemaLocations.put("xlink.xsd", "/w3/1999/xlink.xsd");
schemaLocations.put("geometry.xsd", "/gml/2.1.2/geometry.xsd");
schemaLocations.put("feature.xsd", "/gml/2.1.2/feature.xsd");
schemaLocations.put("gml.xsd", "/gml/2.1.2/gml.xsd");
schemaLocations.put("expr.xsd", "/filter/1.0.0/expr.xsd");
schemaLocations.put("filter.xsd", "/filter/1.0.0/filter.xsd");
schemaLocations.put("filterCapabilities.xsd", "/filter/1.0.0/filterCapabilties.xsd");
schemaLocations.put("WFS-capabilities.xsd", "/wfs/1.0.0/WFS-capabilities.xsd");
schemaLocations.put("OGC-exception.xsd", "/wfs/1.0.0/OGC-exception.xsd");
schemaLocations.put("WFS-basic.xsd", "/wfs/1.0.0/WFS-basic.xsd");
schemaLocations.put("WFS-transaction.xsd", "/wfs/1.0.0/WFS-transaction.xsd");
schemaLocations.put("wfs.xsd", "/wfs/1.0.0/wfs.xsd");
}
@Override
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
String fileName = new java.io.File(systemId).getName();
if (inputs.containsKey(fileName)) {
return inputs.get(fileName);
}
LSInput input = new DOMInputImpl();
InputStream is = getClass().getResourceAsStream(schemaLocations.get(fileName));
input.setByteStream(is);
input.setBaseURI(baseURI);
input.setSystemId(systemId);
inputs.put(fileName, input);
return input;
}
});
Source wfsSchemaSource = new StreamSource(getClass().getResourceAsStream("/wfs/1.0.0/wfs.xsd"));
Source testSchemaSource = new StreamSource(getClass().getResourceAsStream("/schema.xsd"));
Schema schema = schemaFactory.newSchema(new Source[] { wfsSchemaSource, testSchemaSource });
try {
schema.newValidator().validate(new StreamSource(new StringReader(actual)));
} catch (Exception e) {
fail("Generated GML Response does not conform to WFS Schema" + e.getMessage());
}
}
Example 22
Project: fcrepo-master File: SchemaValidator.java View source code |
void validate(Context context, DsTypeModel typeModel, Datastream objectDatastream, Validation validation, DOReader contentmodelReader, Date asOfDateTime, ExternalContentManager m_exExternalContentManager) throws ServerException {
List<Extension> extensions = typeModel.getExtension();
List<List<String>> schemaStreamsToProblemsMap = new ArrayList<List<String>>();
for (Extension extension : extensions) {
String name = extension.getName();
Element reference = null;
Source source = null;
if (!"SCHEMA".equals(name)) {
//ignore non schema extensions
continue;
}
List<Element> contents = extension.getAny();
for (Element content : contents) {
//find the reference
String tagname = content.getTagName();
if (tagname.equals("reference")) {
reference = content;
break;
}
}
if (reference == null) {
//if no reference
boolean found = false;
for (Element content : contents) {
if (content.getNodeType() == Element.ELEMENT_NODE) {
//parse the inline schema
source = new DOMSource(content);
found = true;
break;
}
}
if (!found) {
//empty tag
List<String> validationProblems = validation.getDatastreamProblems(objectDatastream.DatastreamID);
validationProblems.add(Errors.schemaNotFound(contentmodelReader.GetObjectPID()));
validation.setValid(false);
}
} else {
String type = reference.getAttribute("type");
String value = reference.getAttribute("value");
if ("datastream".equalsIgnoreCase(type)) {
Datastream schemaDS = contentmodelReader.GetDatastream(value, asOfDateTime);
if (schemaDS == null) {
//No schema datastream, ignore and continue
continue;
}
InputStream schemaStream;
schemaStream = schemaDS.getContentStream();
source = new StreamSource(schemaStream);
} else if ("url".equalsIgnoreCase(type)) {
InputStream schemaStream;
ContentManagerParams params = new ContentManagerParams(value);
MIMETypedStream externalContent = m_exExternalContentManager.getExternalContent(params);
schemaStream = externalContent.getStream();
source = new StreamSource(schemaStream);
} else {
//reference used, but type not recognized
List<String> validationProblems = validation.getDatastreamProblems(objectDatastream.DatastreamID);
validationProblems.add(Errors.schemaNotFound(contentmodelReader.GetObjectPID()));
validation.setValid(false);
continue;
}
}
LSResourceResolver resourceResolver = new ResourceResolver(contentmodelReader, asOfDateTime);
Schema schema;
try {
schema = parseAsSchema(source, resourceResolver);
} catch (SAXException e) {
List<String> validationProblems = validation.getDatastreamProblems(objectDatastream.DatastreamID);
validationProblems.add(Errors.schemaCannotParse(contentmodelReader.GetObjectPID(), objectDatastream.DatastreamID, e));
validation.setValid(false);
continue;
}
List<String> problems = checkSchema(objectDatastream.getContentStream(), schema, contentmodelReader.GetObjectPID(), objectDatastream.DatastreamID);
schemaStreamsToProblemsMap.add(problems);
if (problems.isEmpty()) {
//produce no errors, do not bother validating against the others.
break;
}
}
boolean foundProblem = false;
for (List<String> problems : schemaStreamsToProblemsMap) {
if (!problems.isEmpty()) {
foundProblem = true;
break;
}
}
if (foundProblem) {
validation.setValid(false);
List<String> validationProblems = validation.getDatastreamProblems(objectDatastream.DatastreamID);
for (List<String> problems : schemaStreamsToProblemsMap) {
validationProblems.addAll(problems);
}
}
}
Example 23
Project: geoserver-master File: CapabilitiesSystemTest.java View source code |
/**
* As for section 7.2.4.1, ensures the GeCapabilities document validates against its schema
*/
@Test
public void testValidateCapabilitiesXML() throws Exception {
final Document dom = getAsDOM("ows?service=WMS&version=1.3.0&request=GetCapabilities");
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
URL schemaLocation = getClass().getResource("/schemas/wms/1.3.0/capabilities_1_3_0.xsd");
factory.setResourceResolver(new LSResourceResolver() {
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
if (namespaceURI.equals("http://www.w3.org/1999/xlink")) {
try {
LSInput input = ((DOMImplementationLS) dom.getImplementation()).createLSInput();
URL xlink = getClass().getResource("/schemas/xlink/1999/xlink.xsd");
systemId = xlink.toURI().toASCIIString();
input.setPublicId(publicId);
input.setSystemId(systemId);
return input;
} catch (Exception e) {
return null;
}
} else if (XML.NAMESPACE.equals(namespaceURI)) {
try {
LSInput input = ((DOMImplementationLS) dom.getImplementation()).createLSInput();
URL xml = XML.class.getResource("xml.xsd");
systemId = xml.toURI().toASCIIString();
input.setPublicId(publicId);
input.setSystemId(systemId);
return input;
} catch (Exception e) {
return null;
}
} else {
return null;
}
}
});
Schema schema = factory.newSchema(schemaLocation);
Validator validator = schema.newValidator();
Source source = new DOMSource(dom);
try {
validator.validate(source);
assertTrue(true);
} catch (SAXException ex) {
LOGGER.log(Level.WARNING, "WMS 1.3.0 capabilities validation error", ex);
print(dom);
fail("WMS 1.3.0 capabilities validation error: " + ex.getMessage());
}
}
Example 24
Project: geoserver_trunk-master File: CapabilitiesSystemTest.java View source code |
/**
* As for section 7.2.4.1, ensures the GeCapabilities document validates against its schema
*/
public void testValidateCapabilitiesXML() throws Exception {
Document dom = getAsDOM("ows?service=WMS&version=1.3.0&request=GetCapabilities");
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
URL schemaLocation = getClass().getResource("/schemas/wms/1.3.0/capabilities_1_3_0.xsd");
factory.setResourceResolver(new LSResourceResolver() {
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
if (namespaceURI.equals("http://www.w3.org/1999/xlink")) {
try {
URL xlink = getClass().getResource("/schemas/xlink/1.0.0/xlinks.xsd");
systemId = xlink.toURI().toASCIIString();
DOMInputImpl input = new DOMInputImpl(publicId, systemId, null);
return input;
} catch (Exception e) {
return null;
}
} else {
return null;
}
}
});
Schema schema = factory.newSchema(schemaLocation);
Validator validator = schema.newValidator();
Source source = new DOMSource(dom);
try {
validator.validate(source);
assertTrue(true);
} catch (SAXException ex) {
LOGGER.log(Level.WARNING, "WMS 1.3.0 capabilities validation error", ex);
print(dom);
fail("WMS 1.3.0 capabilities validation error: " + ex.getMessage());
}
}
Example 25
Project: p2abcengine-master File: XmlUtils.java View source code |
private static Schema getSchema() {
if (abc4trustSchema == null) {
// this XSD includes original + ui json + pilot specifid + test
InputStream xmlSchema_all = XmlUtils.class.getResourceAsStream("/xsd/schema-include-all.xsd");
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
// only include xsd once
final HashSet<String> seen = new HashSet<String>();
// resolver will create 'one' scheame with all definitions...
schemaFactory.setResourceResolver(new LSResourceResolver() {
@Override
public LSInput resolveResource(final String type, final String namespaceURI, final String publicId, final String systemId, final String baseURI) {
if (!seen.add(systemId)) {
return null;
}
final InputStream xmlSchema_included = XmlUtils.class.getResourceAsStream("/xsd/" + systemId);
return new LSInput() {
@Override
public void setSystemId(String systemId) {
}
@Override
public void setStringData(String stringData) {
}
@Override
public void setPublicId(String publicId) {
}
@Override
public void setEncoding(String encoding) {
}
@Override
public void setCharacterStream(Reader characterStream) {
}
@Override
public void setCertifiedText(boolean certifiedText) {
}
@Override
public void setByteStream(InputStream byteStream) {
}
@Override
public void setBaseURI(String baseURI) {
}
@Override
public String getSystemId() {
return systemId;
}
@Override
public String getStringData() {
return null;
}
@Override
public String getPublicId() {
return publicId;
}
@Override
public String getEncoding() {
return null;
}
@Override
public Reader getCharacterStream() {
return null;
}
@Override
public boolean getCertifiedText() {
return false;
}
@Override
public InputStream getByteStream() {
return xmlSchema_included;
}
@Override
public String getBaseURI() {
return null;
}
};
}
});
try {
abc4trustSchema = schemaFactory.newSchema(new StreamSource(xmlSchema_all));
} catch (SAXException e) {
throw new RuntimeException("Cannot load abc4trust schema: " + e.getMessage());
}
}
return abc4trustSchema;
}
Example 26
Project: rmf-master File: AbstractTestCase.java View source code |
protected void validateAgainstSchema(String filename) throws Exception { final String schemaFolderName = "../org.eclipse.rmf.reqif10/schema/"; StreamSource[] schemaDocuments = new StreamSource[] { new StreamSource("../org.eclipse.rmf.reqif10/schema/reqif.xsd") }; Source instanceDocument = new StreamSource(filename); // the resolver is required to map the schema references to the reqif sub schema files to the local locations LSResourceResolver resolver = new LSResourceResolver() { public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) { String schemaFileName; if (null != systemId) { int slashIndex = systemId.lastIndexOf("/"); if (-1 == slashIndex) { schemaFileName = systemId; } else if (slashIndex == systemId.length() + 1) { schemaFileName = null; } else { schemaFileName = systemId.substring(slashIndex); } } else { schemaFileName = null; } InputStream inputStream; try { inputStream = new FileInputStream(schemaFolderName + schemaFileName); } catch (FileNotFoundException ex) { return null; } return new Input(publicId, systemId, inputStream); } }; SchemaFactory sf = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); sf.setResourceResolver(resolver); Schema s = sf.newSchema(schemaDocuments); Validator v = s.newValidator(); v.validate(instanceDocument); }
Example 27
Project: eid-applet-master File: XAdESSignatureFacetTest.java View source code |
@Test
public void testSignEnvelopingDocument() throws Exception {
// setup
EnvelopedSignatureFacet envelopedSignatureFacet = new EnvelopedSignatureFacet();
KeyInfoSignatureFacet keyInfoSignatureFacet = new KeyInfoSignatureFacet(true, false, false);
SignaturePolicyService signaturePolicyService = null;
// SignaturePolicyService signaturePolicyService = new
// ExplicitSignaturePolicyService(
// "urn:test", "hello world".getBytes(), "description",
// "http://here.com");
XAdESSignatureFacet xadesSignatureFacet = new XAdESSignatureFacet(signaturePolicyService);
TimeStampService mockTimeStampService = EasyMock.createMock(TimeStampService.class);
RevocationDataService mockRevocationDataService = EasyMock.createMock(RevocationDataService.class);
XAdESXLSignatureFacet xadesXLSignatureFacet = new XAdESXLSignatureFacet(mockTimeStampService, mockRevocationDataService);
XmlSignatureTestService testedInstance = new XmlSignatureTestService(envelopedSignatureFacet, keyInfoSignatureFacet, xadesSignatureFacet, xadesXLSignatureFacet);
KeyPair keyPair = PkiTestUtils.generateKeyPair();
DateTime notBefore = new DateTime();
DateTime notAfter = notBefore.plusYears(1);
X509Certificate certificate = PkiTestUtils.generateCertificate(keyPair.getPublic(), "CN=Test", notBefore, notAfter, null, keyPair.getPrivate(), true, 0, null, null, new KeyUsage(KeyUsage.nonRepudiation));
List<X509Certificate> certificateChain = new LinkedList<X509Certificate>();
/*
* We need at least 2 certificates for the XAdES-C complete certificate
* refs construction.
*/
certificateChain.add(certificate);
certificateChain.add(certificate);
RevocationData revocationData = new RevocationData();
final X509CRL crl = PkiTestUtils.generateCrl(certificate, keyPair.getPrivate());
revocationData.addCRL(crl);
OCSPResp ocspResp = PkiTestUtils.createOcspResp(certificate, false, certificate, certificate, keyPair.getPrivate(), "SHA1withRSA");
revocationData.addOCSP(ocspResp.getEncoded());
// expectations
EasyMock.expect(mockTimeStampService.timeStamp(EasyMock.anyObject(byte[].class), EasyMock.anyObject(RevocationData.class))).andStubAnswer(new IAnswer<byte[]>() {
public byte[] answer() throws Throwable {
Object[] arguments = EasyMock.getCurrentArguments();
RevocationData revocationData = (RevocationData) arguments[1];
revocationData.addCRL(crl);
return "time-stamp-token".getBytes();
}
});
EasyMock.expect(mockRevocationDataService.getRevocationData(EasyMock.eq(certificateChain))).andStubReturn(revocationData);
// prepare
EasyMock.replay(mockTimeStampService, mockRevocationDataService);
// operate
DigestInfo digestInfo = testedInstance.preSign(null, certificateChain, null, null, null);
// verify
assertNotNull(digestInfo);
assertEquals("SHA-1", digestInfo.digestAlgo);
assertNotNull(digestInfo.digestValue);
TemporaryTestDataStorage temporaryDataStorage = (TemporaryTestDataStorage) testedInstance.getTemporaryDataStorage();
assertNotNull(temporaryDataStorage);
InputStream tempInputStream = temporaryDataStorage.getTempInputStream();
assertNotNull(tempInputStream);
Document tmpDocument = PkiTestUtils.loadDocument(tempInputStream);
LOG.debug("tmp document: " + PkiTestUtils.toString(tmpDocument));
Element nsElement = tmpDocument.createElement("ns");
nsElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:ds", Constants.SignatureSpecNS);
nsElement.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:xades", "http://uri.etsi.org/01903/v1.3.2#");
Node digestValueNode = XPathAPI.selectSingleNode(tmpDocument, "//ds:DigestValue", nsElement);
assertNotNull(digestValueNode);
String digestValueTextContent = digestValueNode.getTextContent();
LOG.debug("digest value text content: " + digestValueTextContent);
assertFalse(digestValueTextContent.isEmpty());
/*
* Sign the received XML signature digest value.
*/
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPrivate());
byte[] digestInfoValue = ArrayUtils.addAll(PkiTestUtils.SHA1_DIGEST_INFO_PREFIX, digestInfo.digestValue);
byte[] signatureValue = cipher.doFinal(digestInfoValue);
/*
* Operate: postSign
*/
testedInstance.postSign(signatureValue, certificateChain);
// verify
EasyMock.verify(mockTimeStampService, mockRevocationDataService);
byte[] signedDocumentData = testedInstance.getSignedDocumentData();
assertNotNull(signedDocumentData);
Document signedDocument = PkiTestUtils.loadDocument(new ByteArrayInputStream(signedDocumentData));
LOG.debug("signed document: " + PkiTestUtils.toString(signedDocument));
NodeList signatureNodeList = signedDocument.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
assertEquals(1, signatureNodeList.getLength());
Element signatureNode = (Element) signatureNodeList.item(0);
// work-around for Java 7
Element signedPropertiesElement = (Element) signatureNode.getElementsByTagNameNS(XAdESXLSignatureFacet.XADES_NAMESPACE, "SignedProperties").item(0);
signedPropertiesElement.setIdAttribute("Id", true);
DOMValidateContext domValidateContext = new DOMValidateContext(KeySelector.singletonKeySelector(keyPair.getPublic()), signatureNode);
XMLSignatureFactory xmlSignatureFactory = XMLSignatureFactory.getInstance();
XMLSignature xmlSignature = xmlSignatureFactory.unmarshalXMLSignature(domValidateContext);
boolean validity = xmlSignature.validate(domValidateContext);
assertTrue(validity);
File tmpFile = File.createTempFile("xades-x-l-", ".xml");
FileUtils.writeStringToFile(tmpFile, PkiTestUtils.toString(signedDocument));
LOG.debug("tmp file: " + tmpFile.getAbsolutePath());
Node resultNode = XPathAPI.selectSingleNode(signedDocument, "ds:Signature/ds:Object/xades:QualifyingProperties/xades:SignedProperties/xades:SignedSignatureProperties/xades:SigningCertificate/xades:Cert/xades:CertDigest/ds:DigestValue", nsElement);
assertNotNull(resultNode);
// also test whether the XAdES extension is in line with the XAdES XML
// Schema.
// stax-api 1.0.1 prevents us from using
// "XMLConstants.W3C_XML_SCHEMA_NS_URI"
Node qualifyingPropertiesNode = XPathAPI.selectSingleNode(signedDocument, "ds:Signature/ds:Object/xades:QualifyingProperties", nsElement);
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
LSResourceResolver xadesResourceResolver = new XAdESLSResourceResolver();
factory.setResourceResolver(xadesResourceResolver);
InputStream schemaInputStream = XAdESSignatureFacetTest.class.getResourceAsStream("/XAdESv141.xsd");
Source schemaSource = new StreamSource(schemaInputStream);
Schema schema = factory.newSchema(schemaSource);
Validator validator = schema.newValidator();
// DOMResult gives some DOMException...
validator.validate(new DOMSource(qualifyingPropertiesNode));
StreamSource streamSource = new StreamSource(tmpFile.toURI().toString());
ByteArrayOutputStream resultOutputStream = new ByteArrayOutputStream();
StreamResult streamResult = new StreamResult(resultOutputStream);
// validator.validate(streamSource, streamResult);
LOG.debug("result: " + resultOutputStream);
}
Example 28
Project: jaxws-master File: AbstractSchemaValidationTube.java View source code |
@Override
public LSInput resolveResource(String type, String namespaceURI, String publicId, final String systemId, final String baseURI) {
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "type={0} namespaceURI={1} publicId={2} systemId={3} baseURI={4}", new Object[] { type, namespaceURI, publicId, systemId, baseURI });
}
try {
final SDDocument doc;
if (systemId == null) {
doc = nsMapping.get(namespaceURI);
} else {
URI rel = (baseURI != null) ? new URI(baseURI).resolve(systemId) : new URI(systemId);
doc = docs.get(rel.toString());
}
if (doc != null) {
return new LSInput() {
@Override
public Reader getCharacterStream() {
return null;
}
@Override
public void setCharacterStream(Reader characterStream) {
throw new UnsupportedOperationException();
}
@Override
public InputStream getByteStream() {
ByteArrayBuffer bab = new ByteArrayBuffer();
try {
doc.writeTo(null, resolver, bab);
} catch (IOException ioe) {
throw new WebServiceException(ioe);
}
return bab.newInputStream();
}
@Override
public void setByteStream(InputStream byteStream) {
throw new UnsupportedOperationException();
}
@Override
public String getStringData() {
return null;
}
@Override
public void setStringData(String stringData) {
throw new UnsupportedOperationException();
}
@Override
public String getSystemId() {
return doc.getURL().toExternalForm();
}
@Override
public void setSystemId(String systemId) {
throw new UnsupportedOperationException();
}
@Override
public String getPublicId() {
return null;
}
@Override
public void setPublicId(String publicId) {
throw new UnsupportedOperationException();
}
@Override
public String getBaseURI() {
return doc.getURL().toExternalForm();
}
@Override
public void setBaseURI(String baseURI) {
throw new UnsupportedOperationException();
}
@Override
public String getEncoding() {
return null;
}
@Override
public void setEncoding(String encoding) {
throw new UnsupportedOperationException();
}
@Override
public boolean getCertifiedText() {
return false;
}
@Override
public void setCertifiedText(boolean certifiedText) {
throw new UnsupportedOperationException();
}
};
}
} catch (Exception e) {
LOGGER.log(Level.WARNING, "Exception in LSResourceResolver impl", e);
}
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.log(Level.FINE, "Don''t know about systemId={0} baseURI={1}", new Object[] { systemId, baseURI });
}
return null;
}
Example 29
Project: mojarra-master File: DbfFactory.java View source code |
/** * Load the schema for the given schema id. * * @param schemaMap the schema map. * @param schemaId the schema id. */ private static void loadSchema(Map<FacesSchema, Schema> schemaMap, FacesSchema schemaId) { URL url; URLConnection conn; InputStream in; SchemaFactory factory; File f; Schema schema; try { switch(schemaId) { case FACES_12: url = DbfFactory.class.getResource(FACES_1_2_XSD); if (url == null) { // try to load from the file f = new File(FACES_1_2_XSD_FILE); if (!f.exists()) { throw new IllegalStateException("Unable to find web-facesconfig_1_2.xsd"); } url = f.toURI().toURL(); } conn = url.openConnection(); conn.setUseCaches(false); in = conn.getInputStream(); factory = Util.createSchemaFactory(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER); schema = factory.newSchema(new StreamSource(in)); schemaMap.put(schemaId, schema); break; case FACES_11: url = DbfFactory.class.getResource(FACES_1_1_XSD); conn = url.openConnection(); conn.setUseCaches(false); in = conn.getInputStream(); factory = Util.createSchemaFactory(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER); schema = factory.newSchema(new StreamSource(in)); schemaMap.put(schemaId, schema); break; case FACES_21: url = DbfFactory.class.getResource(FACES_2_1_XSD); if (url == null) { // try to load from the file f = new File(FACES_2_1_XSD_FILE); if (!f.exists()) { throw new IllegalStateException("Unable to find web-facesconfig_2_1.xsd"); } url = f.toURI().toURL(); } conn = url.openConnection(); conn.setUseCaches(false); in = conn.getInputStream(); factory = Util.createSchemaFactory(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER); schema = factory.newSchema(new StreamSource(in)); schemaMap.put(schemaId, schema); break; case FACES_22: url = DbfFactory.class.getResource(FACES_2_2_XSD); if (url == null) { // try to load from the file f = new File(FACES_2_2_XSD_FILE); if (!f.exists()) { throw new IllegalStateException("Unable to find web-facesconfig_2_2.xsd"); } url = f.toURI().toURL(); } conn = url.openConnection(); conn.setUseCaches(false); in = conn.getInputStream(); factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER); schema = factory.newSchema(new StreamSource(in)); schemaMap.put(schemaId, schema); break; case FACES_23: url = DbfFactory.class.getResource(FACES_2_3_XSD); if (url == null) { // try to load from the file f = new File(FACES_2_3_XSD_FILE); if (!f.exists()) { throw new IllegalStateException("Unable to find web-facesconfig_2_3.xsd"); } url = f.toURI().toURL(); } conn = url.openConnection(); conn.setUseCaches(false); in = conn.getInputStream(); factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER); schema = factory.newSchema(new StreamSource(in)); schemaMap.put(schemaId, schema); break; case FACES_20: url = DbfFactory.class.getResource(FACES_2_0_XSD); if (url == null) { // try to load from the file f = new File(FACES_2_0_XSD_FILE); if (!f.exists()) { throw new IllegalStateException("Unable to find web-facesconfig_2_0.xsd"); } url = f.toURI().toURL(); } conn = url.openConnection(); conn.setUseCaches(false); in = conn.getInputStream(); factory = Util.createSchemaFactory(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER); schema = factory.newSchema(new StreamSource(in)); schemaMap.put(schemaId, schema); break; case FACELET_TAGLIB_20: url = DbfFactory.class.getResource(FACELET_TAGLIB_2_0_XSD); if (url == null) { // try to load from the file f = new File(FACELET_TAGLIB_2_0_XSD_FILE); if (!f.exists()) { throw new IllegalStateException("Unable to find web-facelettaglibrary_2_0.xsd"); } url = f.toURI().toURL(); } conn = url.openConnection(); conn.setUseCaches(false); in = conn.getInputStream(); factory = Util.createSchemaFactory(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER); schema = factory.newSchema(new StreamSource(in)); schemaMap.put(schemaId, schema); break; case FACELET_TAGLIB_22: url = DbfFactory.class.getResource(FACELET_TAGLIB_2_2_XSD); if (url == null) { // try to load from the file f = new File(FACELET_TAGLIB_2_2_XSD_FILE); if (!f.exists()) { throw new IllegalStateException("Unable to find web-facelettaglibrary_2_2.xsd"); } url = f.toURI().toURL(); } conn = url.openConnection(); conn.setUseCaches(false); in = conn.getInputStream(); factory = Util.createSchemaFactory(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setResourceResolver((LSResourceResolver) DbfFactory.FACES_ENTITY_RESOLVER); schema = factory.newSchema(new StreamSource(in)); schemaMap.put(schemaId, schema); break; default: throw new ConfigurationException("Unrecognized Faces Version: " + schemaId.toString()); } } catch (IllegalStateExceptionIOException | SAXException | ConfigurationException | e) { throw new ConfigurationException(e); } }
Example 30
Project: wss4j-master File: WSSec.java View source code |
public static Schema loadWSSecuritySchemas() throws SAXException {
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFactory.setResourceResolver(new LSResourceResolver() {
@Override
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
if ("http://www.w3.org/2001/XMLSchema.dtd".equals(systemId)) {
ConcreteLSInput concreteLSInput = new ConcreteLSInput();
concreteLSInput.setByteStream(ClassLoaderUtils.getResourceAsStream("schemas/XMLSchema.dtd", WSSec.class));
return concreteLSInput;
} else if ("XMLSchema.dtd".equals(systemId)) {
ConcreteLSInput concreteLSInput = new ConcreteLSInput();
concreteLSInput.setByteStream(ClassLoaderUtils.getResourceAsStream("schemas/XMLSchema.dtd", WSSec.class));
return concreteLSInput;
} else if ("datatypes.dtd".equals(systemId)) {
ConcreteLSInput concreteLSInput = new ConcreteLSInput();
concreteLSInput.setByteStream(ClassLoaderUtils.getResourceAsStream("schemas/datatypes.dtd", WSSec.class));
return concreteLSInput;
} else if ("http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd".equals(systemId)) {
ConcreteLSInput concreteLSInput = new ConcreteLSInput();
concreteLSInput.setByteStream(ClassLoaderUtils.getResourceAsStream("schemas/xmldsig-core-schema.xsd", WSSec.class));
return concreteLSInput;
} else if ("http://www.w3.org/2001/xml.xsd".equals(systemId)) {
ConcreteLSInput concreteLSInput = new ConcreteLSInput();
concreteLSInput.setByteStream(ClassLoaderUtils.getResourceAsStream("schemas/xml.xsd", WSSec.class));
return concreteLSInput;
}
return null;
}
});
Schema schema = schemaFactory.newSchema(new Source[] { new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/xml.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/soap-1.1.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/soap-1.2.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/exc-c14n.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/xmldsig-core-schema.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/xenc-schema.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/xenc-schema-11.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/xmldsig11-schema.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/oasis-200401-wss-wssecurity-utility-1.0.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/oasis-200401-wss-wssecurity-secext-1.0.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/oasis-wss-wssecurity-secext-1.1.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/ws-secureconversation-200502.xsd", WSSec.class)), new StreamSource(ClassLoaderUtils.getResourceAsStream("schemas/ws-secureconversation-1.3.xsd", WSSec.class)) });
return schema;
}
Example 31
Project: JDK-master File: DOMParserImpl.java View source code |
/** * Set parameters and properties */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); try { if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) { fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)) { fConfiguration.setFeature(NORMALIZE_DATA, state); } else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) { fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, state); } else if (name.equalsIgnoreCase(Constants.DOM_DISALLOW_DOCTYPE)) { fConfiguration.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)) { if (state) { // true is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting those features to false is no-op } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) { fConfiguration.setFeature(NAMESPACES, state); } else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) { // Setting false has no effect. if (state) { // true: namespaces, namespace-declarations, // comments, element-content-whitespace fConfiguration.setFeature(NAMESPACES, true); fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); // false: validate-if-schema, entities, // datatype-normalization, cdata-sections fConfiguration.setFeature(DYNAMIC_VALIDATION, false); fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); fConfiguration.setFeature(NORMALIZE_DATA, false); fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) { fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); } else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED) || name.equalsIgnoreCase(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { if (!state) { // false is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting these features to true is no-op // REVISIT: implement "namespace-declaration" feature } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) { fConfiguration.setFeature(VALIDATION_FEATURE, state); if (fSchemaType != Constants.NS_DTD) { fConfiguration.setFeature(XMLSCHEMA, state); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, state); } if (state) { fConfiguration.setFeature(DYNAMIC_VALIDATION, false); } } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)) { fConfiguration.setFeature(DYNAMIC_VALIDATION, state); // Note: validation and dynamic validation are mutually exclusive if (state) { fConfiguration.setFeature(VALIDATION_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, state); } else if (name.equalsIgnoreCase(Constants.DOM_PSVI)) { //XSModel - turn on PSVI augmentation fConfiguration.setFeature(PSVI_AUGMENT, true); fConfiguration.setProperty(DOCUMENT_CLASS_NAME, "com.sun.org.apache.xerces.internal.dom.PSVIDocumentImpl"); } else { // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, // Constants.DOM_SPLIT_CDATA feature, // or any Xerces feature String normalizedName; if (name.equals(NAMESPACE_GROWTH)) { normalizedName = NAMESPACE_GROWTH; } else if (name.equals(TOLERATE_DUPLICATES)) { normalizedName = TOLERATE_DUPLICATES; } else { normalizedName = name.toLowerCase(Locale.ENGLISH); } fConfiguration.setFeature(normalizedName, state); } } catch (XMLConfigurationException e) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } else { // set properties if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler || value == null) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); fConfiguration.setProperty(ERROR_HANDLER, fErrorHandler); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver || value == null) { try { fConfiguration.setProperty(ENTITY_RESOLVER, new DOMEntityResolverWrapper((LSResourceResolver) value)); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) { if (value instanceof String || value == null) { try { if (value == null) { fSchemaLocation = null; fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, null); } else { fSchemaLocation = (String) value; // map DOM schema-location to JAXP schemaSource property // tokenize location string StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r"); if (t.hasMoreTokens()) { fSchemaLocations.clear(); fSchemaLocations.add(t.nextToken()); while (t.hasMoreTokens()) { fSchemaLocations.add(t.nextToken()); } fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, fSchemaLocations.toArray()); } else { fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, value); } } } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) { if (value instanceof String || value == null) { try { if (value == null) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, null); fSchemaType = null; } else if (value.equals(Constants.NS_XMLSCHEMA)) { // turn on schema features fConfiguration.setFeature(XMLSCHEMA, true); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, true); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_XMLSCHEMA); fSchemaType = Constants.NS_XMLSCHEMA; } else if (value.equals(Constants.NS_DTD)) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_DTD); fSchemaType = Constants.NS_DTD; } } catch (XMLConfigurationException e) { } } else { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(DOCUMENT_CLASS_NAME)) { fConfiguration.setProperty(DOCUMENT_CLASS_NAME, value); } else { // Try to set the property. String normalizedName = name.toLowerCase(Locale.ENGLISH); try { fConfiguration.setProperty(normalizedName, value); return; } catch (XMLConfigurationException e) { } // If this is a boolean parameter a type mismatch should be thrown. try { if (name.equals(NAMESPACE_GROWTH)) { normalizedName = NAMESPACE_GROWTH; } else if (name.equals(TOLERATE_DUPLICATES)) { normalizedName = TOLERATE_DUPLICATES; } fConfiguration.getFeature(normalizedName); throw newTypeMismatchError(name); } catch (XMLConfigurationException e) { } // Parameter is not recognized throw newFeatureNotFoundError(name); } } }
Example 32
Project: jdk7u-jaxp-master File: DOMParserImpl.java View source code |
/** * Set parameters and properties */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); try { if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) { fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)) { fConfiguration.setFeature(NORMALIZE_DATA, state); } else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) { fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, state); } else if (name.equalsIgnoreCase(Constants.DOM_DISALLOW_DOCTYPE)) { fConfiguration.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)) { if (state) { // true is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting those features to false is no-op } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) { fConfiguration.setFeature(NAMESPACES, state); } else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) { // Setting false has no effect. if (state) { // true: namespaces, namespace-declarations, // comments, element-content-whitespace fConfiguration.setFeature(NAMESPACES, true); fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); // false: validate-if-schema, entities, // datatype-normalization, cdata-sections fConfiguration.setFeature(DYNAMIC_VALIDATION, false); fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); fConfiguration.setFeature(NORMALIZE_DATA, false); fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) { fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); } else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED) || name.equalsIgnoreCase(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { if (!state) { // false is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting these features to true is no-op // REVISIT: implement "namespace-declaration" feature } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) { fConfiguration.setFeature(VALIDATION_FEATURE, state); if (fSchemaType != Constants.NS_DTD) { fConfiguration.setFeature(XMLSCHEMA, state); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, state); } if (state) { fConfiguration.setFeature(DYNAMIC_VALIDATION, false); } } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)) { fConfiguration.setFeature(DYNAMIC_VALIDATION, state); // Note: validation and dynamic validation are mutually exclusive if (state) { fConfiguration.setFeature(VALIDATION_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, state); } else if (name.equalsIgnoreCase(Constants.DOM_PSVI)) { //XSModel - turn on PSVI augmentation fConfiguration.setFeature(PSVI_AUGMENT, true); fConfiguration.setProperty(DOCUMENT_CLASS_NAME, "com.sun.org.apache.xerces.internal.dom.PSVIDocumentImpl"); } else { // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, // Constants.DOM_SPLIT_CDATA feature, // or any Xerces feature String normalizedName; if (name.equals(NAMESPACE_GROWTH)) { normalizedName = NAMESPACE_GROWTH; } else if (name.equals(TOLERATE_DUPLICATES)) { normalizedName = TOLERATE_DUPLICATES; } else { normalizedName = name.toLowerCase(Locale.ENGLISH); } fConfiguration.setFeature(normalizedName, state); } } catch (XMLConfigurationException e) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } else { // set properties if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler || value == null) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); fConfiguration.setProperty(ERROR_HANDLER, fErrorHandler); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver || value == null) { try { fConfiguration.setProperty(ENTITY_RESOLVER, new DOMEntityResolverWrapper((LSResourceResolver) value)); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) { if (value instanceof String || value == null) { try { if (value == null) { fSchemaLocation = null; fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, null); } else { fSchemaLocation = (String) value; // map DOM schema-location to JAXP schemaSource property // tokenize location string StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r"); if (t.hasMoreTokens()) { fSchemaLocations.clear(); fSchemaLocations.add(t.nextToken()); while (t.hasMoreTokens()) { fSchemaLocations.add(t.nextToken()); } fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, fSchemaLocations.toArray()); } else { fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, value); } } } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) { if (value instanceof String || value == null) { try { if (value == null) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, null); fSchemaType = null; } else if (value.equals(Constants.NS_XMLSCHEMA)) { // turn on schema features fConfiguration.setFeature(XMLSCHEMA, true); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, true); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_XMLSCHEMA); fSchemaType = Constants.NS_XMLSCHEMA; } else if (value.equals(Constants.NS_DTD)) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_DTD); fSchemaType = Constants.NS_DTD; } } catch (XMLConfigurationException e) { } } else { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(DOCUMENT_CLASS_NAME)) { fConfiguration.setProperty(DOCUMENT_CLASS_NAME, value); } else { // Try to set the property. String normalizedName = name.toLowerCase(Locale.ENGLISH); try { fConfiguration.setProperty(normalizedName, value); return; } catch (XMLConfigurationException e) { } // If this is a boolean parameter a type mismatch should be thrown. try { if (name.equals(NAMESPACE_GROWTH)) { normalizedName = NAMESPACE_GROWTH; } else if (name.equals(TOLERATE_DUPLICATES)) { normalizedName = TOLERATE_DUPLICATES; } fConfiguration.getFeature(normalizedName); throw newTypeMismatchError(name); } catch (XMLConfigurationException e) { } // Parameter is not recognized throw newFeatureNotFoundError(name); } } }
Example 33
Project: boilerpipe-android-master File: DOMParserImpl.java View source code |
/** * Set parameters and properties */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); try { if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) { fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)) { fConfiguration.setFeature(NORMALIZE_DATA, state); } else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) { fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, state); } else if (name.equalsIgnoreCase(Constants.DOM_DISALLOW_DOCTYPE)) { fConfiguration.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)) { if (state) { // true is not supported throw newFeatureNotSupportedError(name); } // setting those features to false is no-op } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) { fConfiguration.setFeature(NAMESPACES, state); } else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) { // Setting false has no effect. if (state) { // true: namespaces, namespace-declarations, // comments, element-content-whitespace fConfiguration.setFeature(NAMESPACES, true); fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); // false: validate-if-schema, entities, // datatype-normalization, cdata-sections fConfiguration.setFeature(DYNAMIC_VALIDATION, false); fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); fConfiguration.setFeature(NORMALIZE_DATA, false); fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) { fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); } else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED) || name.equalsIgnoreCase(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { if (!state) { // false is not supported throw newFeatureNotSupportedError(name); } // setting these features to true is no-op // REVISIT: implement "namespace-declaration" feature } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) { fConfiguration.setFeature(VALIDATION_FEATURE, state); if (fSchemaType != Constants.NS_DTD) { fConfiguration.setFeature(XMLSCHEMA, state); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, state); } if (state) { fConfiguration.setFeature(DYNAMIC_VALIDATION, false); } } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)) { fConfiguration.setFeature(DYNAMIC_VALIDATION, state); // Note: validation and dynamic validation are mutually exclusive if (state) { fConfiguration.setFeature(VALIDATION_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, state); } else if (name.equalsIgnoreCase(Constants.DOM_PSVI)) { //XSModel - turn on PSVI augmentation //MF fConfiguration.setFeature(PSVI_AUGMENT, true); fConfiguration.setProperty(DOCUMENT_CLASS_NAME, "mf.org.apache.xerces.dom.PSVIDocumentImpl"); } else { // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, // Constants.DOM_SPLIT_CDATA feature, // or any Xerces feature String normalizedName; // mixed case so requires special treatment. if (name.equalsIgnoreCase(HONOUR_ALL_SCHEMALOCATIONS)) { normalizedName = HONOUR_ALL_SCHEMALOCATIONS; } else if (name.equals(NAMESPACE_GROWTH)) { normalizedName = NAMESPACE_GROWTH; } else if (name.equals(TOLERATE_DUPLICATES)) { normalizedName = TOLERATE_DUPLICATES; } else { normalizedName = name.toLowerCase(Locale.ENGLISH); } fConfiguration.setFeature(normalizedName, state); } } catch (XMLConfigurationException e) { throw newFeatureNotFoundError(name); } } else { // set properties if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler || value == null) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); fConfiguration.setProperty(ERROR_HANDLER, fErrorHandler); } catch (XMLConfigurationException e) { } } else { throw newTypeMismatchError(name); } } else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver || value == null) { try { fConfiguration.setProperty(ENTITY_RESOLVER, new DOMEntityResolverWrapper((LSResourceResolver) value)); } catch (XMLConfigurationException e) { } } else { throw newTypeMismatchError(name); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) { if (value instanceof String || value == null) { try { if (value == null) { fSchemaLocation = null; fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, null); } else { fSchemaLocation = (String) value; // map DOM schema-location to JAXP schemaSource property // tokenize location string StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r"); if (t.hasMoreTokens()) { ArrayList locations = new ArrayList(); locations.add(t.nextToken()); while (t.hasMoreTokens()) { locations.add(t.nextToken()); } fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, locations.toArray()); } else { fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, value); } } } catch (XMLConfigurationException e) { } } else { throw newTypeMismatchError(name); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) { if (value instanceof String || value == null) { try { if (value == null) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, null); fSchemaType = null; } else if (value.equals(Constants.NS_XMLSCHEMA)) { // turn on schema features fConfiguration.setFeature(XMLSCHEMA, true); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, true); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_XMLSCHEMA); fSchemaType = Constants.NS_XMLSCHEMA; } else if (value.equals(Constants.NS_DTD)) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_DTD); fSchemaType = Constants.NS_DTD; } } catch (XMLConfigurationException e) { } } else { throw newTypeMismatchError(name); } } else if (name.equalsIgnoreCase(DOCUMENT_CLASS_NAME)) { fConfiguration.setProperty(DOCUMENT_CLASS_NAME, value); } else { // Try to set the property. String normalizedName = name.toLowerCase(Locale.ENGLISH); try { fConfiguration.setProperty(normalizedName, value); return; } catch (XMLConfigurationException e) { } // If this is a boolean parameter a type mismatch should be thrown. try { // mixed case so requires special treatment. if (name.equalsIgnoreCase(HONOUR_ALL_SCHEMALOCATIONS)) { normalizedName = HONOUR_ALL_SCHEMALOCATIONS; } else if (name.equals(NAMESPACE_GROWTH)) { normalizedName = NAMESPACE_GROWTH; } else if (name.equals(TOLERATE_DUPLICATES)) { normalizedName = TOLERATE_DUPLICATES; } fConfiguration.getFeature(normalizedName); throw newTypeMismatchError(name); } catch (XMLConfigurationException e) { } // Parameter is not recognized throw newFeatureNotFoundError(name); } } }
Example 34
Project: JFugue-for-Android-master File: DOMParserImpl.java View source code |
/** * Set parameters and properties */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); try { if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) { fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)) { fConfiguration.setFeature(NORMALIZE_DATA, state); } else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) { fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, state); } else if (name.equalsIgnoreCase(Constants.DOM_DISALLOW_DOCTYPE)) { fConfiguration.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)) { if (state) { // true is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting those features to false is no-op } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) { fConfiguration.setFeature(NAMESPACES, state); } else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) { // Setting false has no effect. if (state) { // true: namespaces, namespace-declarations, // comments, element-content-whitespace fConfiguration.setFeature(NAMESPACES, true); fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); // false: validate-if-schema, entities, // datatype-normalization, cdata-sections fConfiguration.setFeature(DYNAMIC_VALIDATION, false); fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); fConfiguration.setFeature(NORMALIZE_DATA, false); fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) { fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); } else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED) || name.equalsIgnoreCase(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { if (!state) { // false is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting these features to true is no-op // REVISIT: implement "namespace-declaration" feature } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) { fConfiguration.setFeature(VALIDATION_FEATURE, state); if (fSchemaType != Constants.NS_DTD) { fConfiguration.setFeature(XMLSCHEMA, state); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, state); } if (state) { fConfiguration.setFeature(DYNAMIC_VALIDATION, false); } } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)) { fConfiguration.setFeature(DYNAMIC_VALIDATION, state); // Note: validation and dynamic validation are mutually exclusive if (state) { fConfiguration.setFeature(VALIDATION_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, state); } else if (name.equalsIgnoreCase(Constants.DOM_PSVI)) { //XSModel - turn on PSVI augmentation fConfiguration.setFeature(PSVI_AUGMENT, true); fConfiguration.setProperty(DOCUMENT_CLASS_NAME, "org.apache.xerces.dom.PSVIDocumentImpl"); } else { // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, // Constants.DOM_SPLIT_CDATA feature, // or any Xerces feature fConfiguration.setFeature(name.toLowerCase(Locale.ENGLISH), state); } } catch (XMLConfigurationException e) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } else { // set properties if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler || value == null) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); fConfiguration.setProperty(ERROR_HANDLER, fErrorHandler); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver || value == null) { try { fConfiguration.setProperty(ENTITY_RESOLVER, new DOMEntityResolverWrapper((LSResourceResolver) value)); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) { if (value instanceof String || value == null) { try { if (value == null) { fSchemaLocation = null; fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, null); } else { fSchemaLocation = (String) value; // map DOM schema-location to JAXP schemaSource property // tokenize location string StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r"); if (t.hasMoreTokens()) { fSchemaLocations.clear(); fSchemaLocations.add(t.nextToken()); while (t.hasMoreTokens()) { fSchemaLocations.add(t.nextToken()); } fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, fSchemaLocations.toArray()); } else { fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, value); } } } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) { if (value instanceof String || value == null) { try { if (value == null) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, null); fSchemaType = null; } else if (value.equals(Constants.NS_XMLSCHEMA)) { // turn on schema features fConfiguration.setFeature(XMLSCHEMA, true); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, true); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_XMLSCHEMA); fSchemaType = Constants.NS_XMLSCHEMA; } else if (value.equals(Constants.NS_DTD)) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_DTD); fSchemaType = Constants.NS_DTD; } } catch (XMLConfigurationException e) { } } else { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(DOCUMENT_CLASS_NAME)) { fConfiguration.setProperty(DOCUMENT_CLASS_NAME, value); } else { // REVISIT: check if this is a boolean parameter -- type mismatch should be thrown. //parameter is not recognized String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } }
Example 35
Project: topic-modeling-master File: DOMParserImpl.java View source code |
/** * Set parameters and properties */ public void setParameter(String name, Object value) throws DOMException { if (value instanceof Boolean) { boolean state = ((Boolean) value).booleanValue(); try { if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) { fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)) { fConfiguration.setFeature(NORMALIZE_DATA, state); } else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) { fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, state); } else if (name.equalsIgnoreCase(Constants.DOM_DISALLOW_DOCTYPE)) { fConfiguration.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION) || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)) { if (state) { // true is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting those features to false is no-op } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) { fConfiguration.setFeature(NAMESPACES, state); } else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) { // Setting false has no effect. if (state) { // true: namespaces, namespace-declarations, // comments, element-content-whitespace fConfiguration.setFeature(NAMESPACES, true); fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); // false: validate-if-schema, entities, // datatype-normalization, cdata-sections fConfiguration.setFeature(DYNAMIC_VALIDATION, false); fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); fConfiguration.setFeature(NORMALIZE_DATA, false); fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); } else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS)) { fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); } else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED) || name.equalsIgnoreCase(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { if (!state) { // false is not supported String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_SUPPORTED", new Object[] { name }); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // setting these features to true is no-op // REVISIT: implement "namespace-declaration" feature } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) { fConfiguration.setFeature(VALIDATION_FEATURE, state); if (fSchemaType != Constants.NS_DTD) { fConfiguration.setFeature(XMLSCHEMA, state); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, state); } if (state) { fConfiguration.setFeature(DYNAMIC_VALIDATION, false); } } else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)) { fConfiguration.setFeature(DYNAMIC_VALIDATION, state); // Note: validation and dynamic validation are mutually exclusive if (state) { fConfiguration.setFeature(VALIDATION_FEATURE, false); } } else if (name.equalsIgnoreCase(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, state); } else if (name.equalsIgnoreCase(Constants.DOM_PSVI)) { //XSModel - turn on PSVI augmentation fConfiguration.setFeature(PSVI_AUGMENT, true); fConfiguration.setProperty(DOCUMENT_CLASS_NAME, "org.apache.xerces.dom.PSVIDocumentImpl"); } else { // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, // Constants.DOM_SPLIT_CDATA feature, // or any Xerces feature String normalizedName; // mixed case so requires special treatment. if (name.equalsIgnoreCase(HONOUR_ALL_SCHEMALOCATIONS)) { normalizedName = HONOUR_ALL_SCHEMALOCATIONS; } else { normalizedName = name.toLowerCase(Locale.ENGLISH); } fConfiguration.setFeature(normalizedName, state); } } catch (XMLConfigurationException e) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } else { // set properties if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) { if (value instanceof DOMErrorHandler || value == null) { try { fErrorHandler = new DOMErrorHandlerWrapper((DOMErrorHandler) value); fConfiguration.setProperty(ERROR_HANDLER, fErrorHandler); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_RESOURCE_RESOLVER)) { if (value instanceof LSResourceResolver || value == null) { try { fConfiguration.setProperty(ENTITY_RESOLVER, new DOMEntityResolverWrapper((LSResourceResolver) value)); } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) { if (value instanceof String || value == null) { try { if (value == null) { fSchemaLocation = null; fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, null); } else { fSchemaLocation = (String) value; // map DOM schema-location to JAXP schemaSource property // tokenize location string StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r"); if (t.hasMoreTokens()) { fSchemaLocations.clear(); fSchemaLocations.add(t.nextToken()); while (t.hasMoreTokens()) { fSchemaLocations.add(t.nextToken()); } fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, fSchemaLocations.toArray()); } else { fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, value); } } } catch (XMLConfigurationException e) { } } else { // REVISIT: type mismatch String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) { if (value instanceof String || value == null) { try { if (value == null) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, null); fSchemaType = null; } else if (value.equals(Constants.NS_XMLSCHEMA)) { // turn on schema features fConfiguration.setFeature(XMLSCHEMA, true); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, true); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_XMLSCHEMA); fSchemaType = Constants.NS_XMLSCHEMA; } else if (value.equals(Constants.NS_DTD)) { // turn off schema features fConfiguration.setFeature(XMLSCHEMA, false); fConfiguration.setFeature(XMLSCHEMA_FULL_CHECKING, false); // map to JAXP schemaLanguage fConfiguration.setProperty(Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, Constants.NS_DTD); fSchemaType = Constants.NS_DTD; } } catch (XMLConfigurationException e) { } } else { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } } else if (name.equalsIgnoreCase(DOCUMENT_CLASS_NAME)) { fConfiguration.setProperty(DOCUMENT_CLASS_NAME, value); } else { // Try to set the property. String normalizedName = name.toLowerCase(Locale.ENGLISH); try { fConfiguration.setProperty(normalizedName, value); return; } catch (XMLConfigurationException e) { } // If this is a boolean parameter a type mismatch should be thrown. try { // mixed case so requires special treatment. if (name.equalsIgnoreCase(HONOUR_ALL_SCHEMALOCATIONS)) { normalizedName = HONOUR_ALL_SCHEMALOCATIONS; } fConfiguration.getFeature(normalizedName); String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "TYPE_MISMATCH_ERR", new Object[] { name }); throw new DOMException(DOMException.TYPE_MISMATCH_ERR, msg); } catch (XMLConfigurationException e) { } // Parameter is not recognized String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "FEATURE_NOT_FOUND", new Object[] { name }); throw new DOMException(DOMException.NOT_FOUND_ERR, msg); } } }
Example 36
Project: expath-pkg-java-master File: PkgJaxpConfigurer.java View source code |
@Override
public void configSchemaFactory(SchemaFactory factory) {
LSResourceResolver r = new PkgLSResourceResolver(myRepo, URISpace.XSD);
factory.setResourceResolver(r);
}
Example 37
Project: JamVM-PH-master File: GrammarValidator.java View source code |
public LSResourceResolver getResourceResolver() {
return resourceResolver;
}
Example 38
Project: smooks-master File: XsdValidator.java View source code |
public void setSchemaSourceResolver(LSResourceResolver schemaSourceResolver) throws SAXException {
assertSchemaNotInitialized();
SchemaFactory schemaFactory = newSchemaFactory();
this.schemaSourceResolver = schemaSourceResolver;
this.schema = schemaFactory.newSchema();
}
Example 39
Project: eclipse-optimus-master File: XMLFileTransformationMaskDataSource.java View source code |
@Override
public LSResourceResolver getResourceResolver() {
return null;
}
Example 40
Project: werval-master File: SchemaFactoryRelaxNG.java View source code |
@Override
public void setResourceResolver(LSResourceResolver resourceResolver) {
delegate.setResourceResolver(resourceResolver);
}
Example 41
Project: JCGO-master File: XMLSchemaValidatorHandler.java View source code |
public LSResourceResolver getResourceResolver() {
return resourceResolver;
}
Example 42
Project: spring-framework-master File: Jaxb2Marshaller.java View source code |
/** * Set the resource resolver, as used to load the schema resources. * @see SchemaFactory#setResourceResolver(org.w3c.dom.ls.LSResourceResolver) * @see #setSchema(Resource) * @see #setSchemas(Resource[]) */ public void setSchemaResourceResolver(LSResourceResolver schemaResourceResolver) { this.schemaResourceResolver = schemaResourceResolver; }
Example 43
Project: eclipselink.runtime-master File: XMLMappingTestCases.java View source code |
@Override
public void setResourceResolver(LSResourceResolver resourceResolver) {
}