Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Woodstox 6.4.0 - Source Code Files
Woodstox 6.4.0 Source Code Files are provided at the Woodstox GitHub Website.
You can download them from the "src/main/java" folder.
You can also browse Woodstox Source Code files below:
✍: FYIcenter
⏎ com/ctc/wstx/msv/W3CMultiSchemaFactory.java
/* Woodstox XML processor * * Copyright (c) 2004- Tatu Saloranta, tatu.saloranta@iki.fi * * Licensed under the License specified in the file LICENSE which is * included with the source code. * You may not use this file except in compliance with the License. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.ctc.wstx.msv; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.TreeSet; import javax.xml.parsers.SAXParserFactory; import javax.xml.stream.XMLStreamException; import javax.xml.transform.Source; import javax.xml.transform.dom.DOMSource; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.xml.sax.Locator; import com.sun.msv.grammar.ExpressionPool; import com.sun.msv.grammar.xmlschema.XMLSchemaGrammar; import com.sun.msv.grammar.xmlschema.XMLSchemaSchema; import com.sun.msv.reader.GrammarReaderController; import com.sun.msv.reader.State; import com.sun.msv.reader.xmlschema.EmbeddedSchema; import com.sun.msv.reader.xmlschema.MultiSchemaReader; import com.sun.msv.reader.xmlschema.SchemaState; import com.sun.msv.reader.xmlschema.WSDLGrammarReaderController; import com.sun.msv.reader.xmlschema.XMLSchemaReader; import org.codehaus.stax2.validation.XMLValidationSchema; /** * This is a StAX2 schema factory that can parse and create schema instances * for creating validators that validate documents to check their validity * against specific W3C Schema instances. It requires * Sun Multi-Schema Validator * (http://www.sun.com/software/xml/developers/multischema/) * to work (bundled by Woodstox, no need to add dependency separately, * and acts as a quite thin wrapper layer, similar to * how matching RelaxNG validator works. *<p> * Note: intentionally does NOT (claim to) implement {@link org.codehaus.stax2.validation.XMLValidationSchemaFactory} * since interface (that is, {@link W3CMultiSchemaFactory#createSchema(String, Map)}) * is not incompatible with that of other "standard" schema factories; means that * usage must be explicit, direct and can not be triggered via Stax2 API. * * @since 6.2 * * @author Daniel Kulp */ public class W3CMultiSchemaFactory { private final SAXParserFactory parserFactory; public W3CMultiSchemaFactory() { parserFactory = SAXParserFactory.newInstance(); parserFactory.setNamespaceAware(true); } static class RecursiveAllowedXMLSchemaReader extends XMLSchemaReader { Set<String> sysIds = new TreeSet<String>(); RecursiveAllowedXMLSchemaReader(GrammarReaderController controller, SAXParserFactory parserFactory) { super(controller, parserFactory, new StateFactory() { @Override public State schemaHead(String expectedNamespace) { return new SchemaState(expectedNamespace) { private XMLSchemaSchema old; @Override protected void endSelf() { super.endSelf(); RecursiveAllowedXMLSchemaReader r = (RecursiveAllowedXMLSchemaReader)reader; r.currentSchema = old; } @Override protected void onTargetNamespaceResolved(String targetNs, boolean ignoreContents) { RecursiveAllowedXMLSchemaReader r = (RecursiveAllowedXMLSchemaReader)reader; // sets new XMLSchemaGrammar object. old = r.currentSchema; r.currentSchema = r.getOrCreateSchema(targetNs); if (ignoreContents) { return; } if (!r.isSchemaDefined(r.currentSchema)) { r.markSchemaAsDefined(r.currentSchema); } } }; } }, new ExpressionPool()); } @Override public void setLocator(Locator locator) { if (locator == null && getLocator() != null && getLocator().getSystemId() != null) { sysIds.add(getLocator().getSystemId()); } super.setLocator(locator); } @Override public void switchSource(Source source, State newState) { String url = source.getSystemId(); if (url != null && sysIds.contains(url)) { return; } super.switchSource(source, newState); } } /** * Creates an XMLValidateSchema that can be used to validate XML instances against * any of the schemas defined in the Map of schemaSources. * * @param baseURI Base URI for resolving dependant schemas * @param schemaSources Map of schemas, namespace to Source */ public XMLValidationSchema createSchema(String baseURI, Map<String, Source> schemaSources) throws XMLStreamException { Map<String, EmbeddedSchema> embeddedSources = new HashMap<String, EmbeddedSchema>(); for (Map.Entry<String, Source> source : schemaSources.entrySet()) { if (source.getValue() instanceof DOMSource) { Node nd = ((DOMSource)source.getValue()).getNode(); Element el = null; if (nd instanceof Element) { el = (Element)nd; } else if (nd instanceof Document) { el = ((Document)nd).getDocumentElement(); } embeddedSources.put(source.getKey(), new EmbeddedSchema(source.getValue().getSystemId(), el)); } } WSDLGrammarReaderController ctrl = new WSDLGrammarReaderController(null, baseURI, embeddedSources); final RecursiveAllowedXMLSchemaReader xmlSchemaReader = new RecursiveAllowedXMLSchemaReader(ctrl, parserFactory); final MultiSchemaReader multiSchemaReader = new MultiSchemaReader(xmlSchemaReader); for (Source source : schemaSources.values()) { multiSchemaReader.parse(source); } XMLSchemaGrammar grammar = multiSchemaReader.getResult(); if (grammar == null) { throw new XMLStreamException("Failed to load schemas"); } return new W3CSchema(grammar); } }
⏎ com/ctc/wstx/msv/W3CMultiSchemaFactory.java
Or download all of them as a single archive file:
File name: woodstox-core-6.4.0-fyi.zip File size: 552992 bytes Release date: 2022-10-25 Download
⇒ woodstox-core-6.4.0.jar - Woodstox Core 6.4.0
⇐ What Is Woodstox XML Processing
2023-01-29, 9593👍, 0💬
Popular Posts:
itextpdf.jar is a component in iText 5 Java library to provide core functionalities. iText Java libr...
Apache Log4j Core Implementation provides the functional components of the logging system. Users are...
Jetty provides an HTTP server, HTTP client, and javax.servlet container. These components are open s...
What is ojdbc.jar - JDBC Driver for Oracle? ojdbc.jar is a JDBC driver from Oracle that provides dat...
maven-compat-3.8.6.jar is the JAR file for Apache Maven 3.8.6 Compact module. The JAR file name may ...