You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by pi...@apache.org on 2005/09/12 20:05:11 UTC
svn commit: r280379 - in
/cocoon/branches/BRANCH_2_1_X/src/blocks/validation: conf/
java/org/apache/cocoon/components/validation/
java/org/apache/cocoon/components/validation/impl/
java/org/apache/cocoon/components/validation/jaxp/ java/org/apache/coco...
Author: pier
Date: Mon Sep 12 11:04:50 2005
New Revision: 280379
URL: http://svn.apache.org/viewcvs?rev=280379&view=rev
Log:
Starting implementation of a shared resolver for all implementation of schema parsers.
Splitting implementations in their own packages (starting to get big).
Cleans and fixes all around.
Added:
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/ValidationResolver.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jaxp/
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jaxp/JaxpSchemaParser.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingReader.java
- copied, changed from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingReader.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingResolver.java
- copied, changed from r280342, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingContext.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchema.java
- copied, changed from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchema.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchemaParser.java
- copied, changed from r280342, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchemaParser.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContentHandler.java
- copied, changed from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContentHandler.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContext.java
- copied, changed from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContext.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesEntityResolver.java
- copied, changed from r280342, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesEntityResolver.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesGrammarParser.java
- copied, changed from r280342, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesGrammarParser.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesParseException.java
- copied, changed from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesParseException.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchema.java
- copied, changed from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchema.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchemaParser.java
- copied, changed from r280323, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchemaParser.java
Removed:
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingContext.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingReader.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchema.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchemaParser.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContentHandler.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContext.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesEntityResolver.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesGrammarParser.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesParseException.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchema.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchemaParser.java
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/conf/validation.xconf
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/Validator.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/AbstractSchemaParser.java
cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/DefaultValidator.java
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/conf/validation.xconf
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/conf/validation.xconf?rev=280379&r1=280378&r2=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/conf/validation.xconf (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/conf/validation.xconf Mon Sep 12 11:04:50 2005
@@ -25,8 +25,11 @@
| class="org.apache.cocoon.components.validation.impl.DefaultValidator"
+-->
<validator logger="core.validation">
- <schema-parser name="jing" class="org.apache.cocoon.components.validation.impl.JingSchemaParser"/>
- <schema-parser name="xerces-schema" class="org.apache.cocoon.components.validation.impl.XercesSchemaParser"/>
+ <schema-parser name="jing" class="org.apache.cocoon.components.validation.jing.JingSchemaParser"/>
+ <schema-parser name="jaxp" class="org.apache.cocoon.components.validation.jaxp.JaxpSchemaParser">
+ <factory-class>org.apache.xerces.jaxp.validation.XMLSchemaFactory</factory-class>
+ </schema-parser>
+ <schema-parser name="xerces-schema" class="org.apache.cocoon.components.validation.xerces.XercesSchemaParser"/>
</validator>
</xconf>
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/Validator.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/Validator.java?rev=280379&r1=280378&r2=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/Validator.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/Validator.java Mon Sep 12 11:04:50 2005
@@ -68,7 +68,7 @@
/** <p>The <a href="http://www.w3.org/XML/Schema">XML Schema</a/> grammar identifer.</p> */
public static final String GRAMMAR_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
/** <p>The <a href="http://www.w3.org/TR/REC-xml">XML DTD</a/> grammar identifer.</p> */
- public static final String GRAMMAR_XML_DTD = "http://www.w3.org/XML/1998/namespace";
+ public static final String GRAMMAR_XML_DTD = "http://www.w3.org/TR/REC-xml";
/**
* <p>Return a {@link ValidationHandler} validating an XML document according to
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/AbstractSchemaParser.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/AbstractSchemaParser.java?rev=280379&r1=280378&r2=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/AbstractSchemaParser.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/AbstractSchemaParser.java Mon Sep 12 11:04:50 2005
@@ -17,7 +17,8 @@
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
@@ -35,8 +36,8 @@
*
* @author <a href="mailto:pier@betaversion.org">Pier Fumagalli</a>
*/
-public abstract class AbstractSchemaParser extends AbstractLogEnabled
-implements Serviceable, Initializable, Disposable, SchemaParser {
+public abstract class AbstractSchemaParser
+implements LogEnabled, Serviceable, Initializable, Disposable, SchemaParser {
/** <p>The {@link ServiceManager} configured for this instance.</p> */
protected ServiceManager serviceManager = null;
@@ -44,6 +45,15 @@
protected SourceResolver sourceResolver = null;
/** <p>The {@link EntityResolver} resolving against catalogs of public IDs.</p> */
protected EntityResolver entityResolver = null;
+ /** <p>The {@link Logger} configured for this instance.</p> */
+ protected Logger logger = null;
+
+ /**
+ * <p>Enable logging.</p>
+ */
+ public void enableLogging(Logger logger) {
+ this.logger = logger;
+ }
/**
* <p>Contextualize this component specifying a {@link ServiceManager} instance.</p>
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/DefaultValidator.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/DefaultValidator.java?rev=280379&r1=280378&r2=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/DefaultValidator.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/DefaultValidator.java Mon Sep 12 11:04:50 2005
@@ -165,17 +165,27 @@
/* Iterate through the grammars and store them (default lookup) */
for (int k = 0; k < grammars.length; k++) {
- if (this.grammars.containsKey(grammars[k])) continue;
+ if (this.grammars.containsKey(grammars[k])) {
+ if (this.logger.isDebugEnabled()) {
+ this.logger.debug("SchemaParser \"" + selectionKey + "\" " +
+ "supports grammar \"" + grammars[k] +
+ "\" but is not the default provider");
+ }
+ continue;
+ }
/* Noone yet supports this grammar, make this the default */
this.grammars.put(grammars[k], selectionKey);
- this.logger.debug("SchemaParser \"" + selectionKey + "\" is the " +
- "default grammar provider for " + grammars[k]);
+ if (this.logger.isDebugEnabled()) {
+ this.logger.debug("SchemaParser \"" + selectionKey + "\" is the "
+ + "default grammar provider for "+grammars[k]);
+ }
}
} catch (Exception exception) {
/* Darn, we had an exception instantiating one of the components */
- this.logger.warn("Exception creating schema parsers", exception);
+ exception.printStackTrace();
+ this.logger.fatalError("Exception creating schema parsers", exception);
/* Dispose all previously stored component instances */
Iterator iterator = this.components.values().iterator();
Added: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/ValidationResolver.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/ValidationResolver.java?rev=280379&view=auto
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/ValidationResolver.java (added)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/ValidationResolver.java Mon Sep 12 11:04:50 2005
@@ -0,0 +1,199 @@
+/*
+ * Copyright 1999-2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.cocoon.components.validation.impl;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
+import org.apache.excalibur.source.SourceValidity;
+import org.apache.excalibur.source.impl.validity.AggregatedValidity;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+/**
+ * <p>An internal {@link InputSource} resolver that can be used while parsing
+ * schemas.</p>
+ *
+ * <p>This instance will track all resolved external sources and will store their
+ * validity information. An aggregated {@link SourceValidity} for all resolved
+ * sources can be retrieved when {@link #close() closing} this instance.</p>
+ *
+ * @author <a href="mailto:pier@betaversion.org">Pier Fumagalli</a>
+ */
+public class ValidationResolver implements EntityResolver {
+
+ /** <p>The {@link SourceResolver} to access {@link Source}s.</p> */
+ private final SourceResolver sourceResolver;
+ /** <p>The {@link EntityResolver} to resolve public IDs against catalogs.</p> */
+ private final EntityResolver entityResolver;
+ /** <p>The global {@link SourceValidity} of all resolved sources.</p> */
+ private final AggregatedValidity sourceValidity;
+
+ /** <p>A {@link List} of {@link Source} to be released when closing.</p> */
+ private final List sources = new ArrayList();
+
+ /** <p>A flag indicating whether this instance has been closed.</p> */
+ private boolean closed = false;
+
+ /**
+ * <p>Create a new {@link ValidationResolver} instance.</p>
+ *
+ * @throws NullPointerException if one of the specified {@link SourceResolver}
+ * or {@link EntityResolver} was <b>null</b>.
+ */
+ public ValidationResolver(SourceResolver sourceResolver,
+ EntityResolver entityResolver) {
+ if (sourceResolver == null) throw new NullPointerException("Null source");
+ if (entityResolver == null) throw new NullPointerException("Null entity");
+ this.sourceValidity = new AggregatedValidity();
+ this.sourceResolver = sourceResolver;
+ this.entityResolver = entityResolver;
+ }
+
+ /**
+ * <p>Resolve a {@link Source} into an {@link InputSource}.</p>
+ */
+ public InputSource resolveSource(Source source)
+ throws IOException, SAXException {
+ return this.resolveSource(source, null, null);
+ }
+
+ /**
+ * <p>Resolve a {@link Source} into an {@link InputSource}, specifying a
+ * specific system identifier.</p>
+ */
+ public InputSource resolveSource(Source source, String systemId)
+ throws IOException, SAXException {
+ return this.resolveSource(source, systemId, null);
+ }
+
+ /**
+ * <p>Resolve a {@link Source} into an {@link InputSource}, specifying both
+ * a specific system identifier and a public identifier.</p>
+ *
+ * <p>If the specified system identifier was <b>null</b> the returned
+ * {@link InputSource}'s {@link InputSource#getSystemId() system identifier}
+ * will be obtained calling the {@link Source#getURI()} method.</p>
+ */
+ public InputSource resolveSource(Source source, String systemId, String publicId)
+ throws IOException, SAXException {
+ if (this.closed) throw new IllegalStateException("Resolver closed");
+
+ /* Validate what we've been passed */
+ if (source == null) throw new NullPointerException("Null source specified");
+
+ /* Record the current source in the validities to return */
+ this.sourceValidity.add(source.getValidity());
+
+ /* Ensure that we have a proper system id */
+ if (systemId == null) systemId = source.getURI();
+
+ /* Create a new input source and return it filled out entirely */
+ InputSource input = new InputSource(systemId);
+ input.setByteStream(source.getInputStream());
+ if (publicId != null) input.setPublicId(publicId);
+ return input;
+ }
+
+ /**
+ * <p>Resolve an entity identified by a specific system identifier as an
+ * {@link InputSource}.</p>
+ */
+ public InputSource resolveEntity(String systemId)
+ throws IOException, SAXException {
+ return this.resolveEntity(null, null, systemId);
+ }
+
+ /**
+ * <p>Resolve an entity identified by a specific system and public identifier
+ * as an {@link InputSource}.</p>
+ */
+ public InputSource resolveEntity(String publicId, String systemId)
+ throws IOException, SAXException {
+ return this.resolveEntity(null, publicId, systemId);
+ }
+
+ /**
+ * <p>Resolve an entity identified by a specific system and public identifier
+ * and relative to a specified base location as an {@link InputSource}.</p>
+ */
+ public InputSource resolveEntity(String base, String publicId, String systemId)
+ throws IOException, SAXException {
+ if (this.closed) throw new IllegalStateException("Resolver closed");
+
+ /* If the specified system id was null use the global entity resolver */
+ if (systemId == null) {
+ InputSource source = this.entityResolver.resolveEntity(publicId, null);
+ if ((source == null) || (source.getSystemId() == null)) {
+ throw new IOException("Can't resolve \"" + publicId + "\"");
+ }
+ systemId = source.getSystemId();
+ }
+
+ /* Now that we have a valid system id, attempt to resolve it as a source */
+ final Source source;
+ if (base == null) {
+ source = this.sourceResolver.resolveURI(systemId);
+ } else {
+ source = this.sourceResolver.resolveURI(systemId, base, null);
+ }
+
+ /* Record this source as a source to release back to the resolver */
+ this.sources.add(source);
+
+ /* Return the resolved input source back to the caller */
+ return this.resolveSource(source, systemId, publicId);
+ }
+
+ /**
+ * <p>Close this {@link ValidatorResolver} instance, releasing all created
+ * {@link Source}s back to the {@link SourceResolver} and returning an
+ * aggregated {@link SourceValidity}.</p>
+ */
+ public SourceValidity close() {
+
+ /* Release all the sources that were opened using this source resolver */
+ Iterator iterator = this.sources.iterator();
+ while (iterator.hasNext()) {
+ this.sourceResolver.release((Source) iterator.next());
+ }
+
+ /* Mark this instance as closed */
+ this.closed = true;
+
+ /* Return the source validity associated with this instance */
+ return this.sourceValidity;
+ }
+
+ /**
+ * <p>Ensure that when this object is garbage collected, the {@link #close()}
+ * method is executed.</p>
+ */
+ protected void finalize()
+ throws Throwable {
+ try {
+ super.finalize();
+ } finally {
+ if (this.closed) return;
+ this.close();
+ }
+ }
+}
Added: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jaxp/JaxpSchemaParser.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jaxp/JaxpSchemaParser.java?rev=280379&view=auto
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jaxp/JaxpSchemaParser.java (added)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jaxp/JaxpSchemaParser.java Mon Sep 12 11:04:50 2005
@@ -0,0 +1,95 @@
+/* ========================================================================== *
+ * Copyright (C) 2004-2005 Pier Fumagalli <http://www.betaversion.org/~pier/> *
+ * All rights reserved. *
+ * ========================================================================== *
+ * *
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may *
+ * not use this file except in compliance with the License. You may obtain a *
+ * copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>. *
+ * *
+ * 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 org.apache.cocoon.components.validation.jaxp;
+
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.xml.XMLConstants;
+import javax.xml.validation.SchemaFactory;
+
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.cocoon.components.validation.Schema;
+import org.apache.cocoon.components.validation.Validator;
+import org.apache.cocoon.components.validation.impl.AbstractSchemaParser;
+import org.apache.excalibur.source.Source;
+import org.xml.sax.SAXException;
+
+/**
+ * <p>TODO: ...</p>
+ *
+ * @author <a href="mailto:pier@betaversion.org">Pier Fumagalli</a>
+ */
+public class JaxpSchemaParser extends AbstractSchemaParser
+implements Configurable, ThreadSafe {
+
+ private String className = null;
+ private String[] grammars = null;
+
+ public void configure(Configuration conf)
+ throws ConfigurationException {
+ this.className = conf.getChild("factory-class").getValue();
+ final SchemaFactory fact;
+ try {
+ fact = (SchemaFactory) Class.forName(this.className).newInstance();
+ } catch (Exception exception) {
+ String message = "Unable to instantiate factory " + className;
+ throw new ConfigurationException(message, conf, exception);
+ }
+
+ /* Detect languages or use the supplied ones */
+ Configuration languages[] = conf.getChild("grammars").getChildren("grammar");
+ Set grammars = new HashSet();
+ if (languages.length > 0) {
+
+ /* If the configuration specified (formally) a list of grammars use it */
+ for (int x = 0; x < languages.length; x++) {
+ grammars.add(languages[x].getValue());
+ }
+
+ } else {
+
+ /* Attempt to detect the languages directly using the JAXP factory */
+ if (fact.isSchemaLanguageSupported(XMLConstants.W3C_XML_SCHEMA_NS_URI)) {
+ grammars.add(Validator.GRAMMAR_XML_SCHEMA);
+ }
+ if (fact.isSchemaLanguageSupported(XMLConstants.RELAXNG_NS_URI)) {
+ grammars.add(Validator.GRAMMAR_RELAX_NG);
+ }
+ if (fact.isSchemaLanguageSupported(XMLConstants.XML_DTD_NS_URI)) {
+ grammars.add(Validator.GRAMMAR_XML_DTD);
+ }
+ }
+
+ /* Store our grammars */
+ this.grammars = (String[]) grammars.toArray(new String[grammars.size()]);
+ }
+
+ public Schema parseSchema(Source source, String grammar)
+ throws SAXException, IOException {
+ throw new UnsupportedOperationException();
+ }
+
+ public String[] getSupportedGrammars() {
+ return this.grammars;
+ }
+}
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingReader.java (from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingReader.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingReader.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingReader.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingReader.java&r1=280322&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingReader.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingReader.java Mon Sep 12 11:04:50 2005
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.jing;
import java.io.IOException;
import java.util.Stack;
@@ -35,20 +35,20 @@
/**
* <p>A trivial {@link XMLReader} implementation populating and clearing the
* {@link Stack} of {@link InputSource}s for URI resolution kept inside
- * a {@link JingContext}.</p>
+ * a {@link JingResolver}.</p>
*/
final class JingReader implements XMLReader {
/** <p>The underlying {@link XMLReader} to use.</p> */
private final XMLReader reader;
- /** <p>The {@link JingContext} associated with this instance.</p> */
- private final JingContext context;
+ /** <p>The {@link JingResolver} associated with this instance.</p> */
+ private final JingResolver context;
/**
* <p>Create a new {@link JingReader} instance associated with the specified
- * {@link JingContext}.</p>
+ * {@link JingResolver}.</p>
*/
- protected JingReader(JingContext context)
+ protected JingReader(JingResolver context)
throws SAXException {
/*
* We have to look up the XMLReader using JAXP or SAX, as the SAXParser
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingResolver.java (from r280342, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingContext.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingResolver.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingResolver.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingContext.java&r1=280342&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingContext.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingResolver.java Mon Sep 12 11:04:50 2005
@@ -13,60 +13,40 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.jing;
import java.io.IOException;
import java.util.Stack;
-import org.apache.excalibur.source.Source;
+import org.apache.cocoon.components.validation.impl.ValidationResolver;
import org.apache.excalibur.source.SourceResolver;
-import org.apache.excalibur.source.SourceValidity;
-import org.apache.excalibur.source.impl.validity.AggregatedValidity;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
-import com.thaiopensource.util.PropertyMap;
-import com.thaiopensource.util.PropertyMapBuilder;
-import com.thaiopensource.validate.ValidateProperty;
-import com.thaiopensource.xml.sax.DraconianErrorHandler;
import com.thaiopensource.xml.sax.XMLReaderCreator;
/**
- * <p>A simple context used when parsing RELAX NG schemas through the use of
+ * <p>A simple resolver used when parsing RELAX NG schemas through the use of
* <a href="http://www.thaiopensource.com/relaxng/jing.html">JING</a>.</p>
- *
+ *
* <p>This is not thread safe and not recyclable. Once used, it <b>must</b> be
* garbage collected.</p>
*
* @author <a href="mailto:pier@betaversion.org">Pier Fumagalli</a>
*/
-public class JingContext implements EntityResolver, XMLReaderCreator {
+public class JingResolver extends ValidationResolver implements XMLReaderCreator {
/** <p>The current {@link Stack} of {@link InputSource}s being parsed. </p> */
private final Stack parsedSourceStack = new Stack();
- /** <p>The {@link SourceValidity} associated with the schema.</p> */
- private final AggregatedValidity sourceValidity = new AggregatedValidity();
- /** <p>The {@link SourceResolver} to resolve URIs to {@link Source}s.</p> */
- private final SourceResolver sourceResolver;
- /** <p>The global {@link EntityResolver} for catalog resolution.</p> */
- private final EntityResolver entityResolver;
- /** <p>The {@link PropertyMap} to use with JING's factories.</p> */
- private final PropertyMap validatorProperties;
/**
- * <p>Create a new {@link JingContext} instance.</p>
+ * <p>Create a new {@link JingResolver} instance.</p>
*/
- protected JingContext(SourceResolver sourceResolver,
- EntityResolver entityResolver) {
- PropertyMapBuilder builder = new PropertyMapBuilder();
- ValidateProperty.ENTITY_RESOLVER.put(builder, this);
- ValidateProperty.ERROR_HANDLER.put(builder, new DraconianErrorHandler());
- ValidateProperty.XML_READER_CREATOR.put(builder, this);
- this.validatorProperties = builder.toPropertyMap();
- this.sourceResolver = sourceResolver;
- this.entityResolver = entityResolver;
+ public JingResolver(SourceResolver sourceResolver,
+ EntityResolver entityResolver) {
+ super(sourceResolver, entityResolver);
this.parsedSourceStack.push(null);
}
@@ -88,42 +68,12 @@
}
/**
- * <p>Return the {@link SourceValidity} of all sources resolved by this
- * instance through the {@link #resolveEntity(String, String)} method.</p>
- */
- public SourceValidity getValidity() {
- return this.sourceValidity;
- }
-
- /**
* <p>Return the {@link PropertyMap} associated with this instance and usable
* by <a href="http://www.thaiopensource.com/relaxng/jing.html">JING</a>.</p>
*/
- public PropertyMap getProperties() {
- return this.validatorProperties;
- }
-
- /* =========================================================================== */
- /* INTERNAL EXCALIBUR SOURCE RESOLUTION AND CONVERSION METHODS */
- /* =========================================================================== */
-
- /**
- * <p>Produce an {@link InputSource} from the specified {@link Source} adding
- * its {@link SourceValidity} to the aggregate managed by this instance.</p>
- *
- * @param source the {@link Source} to resolve and whose validity must be added.
- * @return a <b>non-null</b> {@link InputSource} instance.
- * @throws IOException if an I/O error occurred accessing the {@link Source}.
- */
- public InputSource resolveSource(Source source)
- throws IOException {
- this.sourceValidity.add(source.getValidity());
- InputSource inputSource = new InputSource();
- inputSource.setSystemId(source.getURI());
- inputSource.setByteStream(source.getInputStream());
- return inputSource;
- }
-
+ //public PropertyMap getProperties() {
+ // return this.validatorProperties;
+ //}
/* =========================================================================== */
/* SAX2 ENTITY RESOLVER INTERFACE IMPLEMENTATION */
@@ -161,28 +111,11 @@
*/
public InputSource resolveEntity(String publicId, String systemId)
throws SAXException, IOException {
- if (this.sourceValidity == null) throw new IOException("Can't resolve now");
-
- /* Try to resolve the public id if we don't have a system id */
- if (systemId == null) {
- InputSource source = this.entityResolver.resolveEntity(publicId, null);
- if ((source == null) || (source.getSystemId() == null)) {
- throw new IOException("Can't resolve \"" + publicId + "\"");
- } else {
- systemId = source.getSystemId();
- }
- }
-
- /* Use Cocoon's SourceResolver to resolve the system id */
- InputSource parsing = (InputSource) this.parsedSourceStack.peek();
- String base = parsing != null? parsing.getSystemId(): null;
- Source source = this.sourceResolver.resolveURI(systemId, base, null);
- try {
- final InputSource input = this.resolveSource(source);
- if (publicId != null) input.setPublicId(publicId);
- return input;
- } finally {
- this.sourceResolver.release(source);
+ InputSource source = (InputSource) this.parsedSourceStack.peek();
+ if (source == null) {
+ return super.resolveEntity(publicId, systemId);
+ } else {
+ return super.resolveEntity(source.getSystemId(), publicId, systemId);
}
}
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchema.java (from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchema.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchema.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchema.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchema.java&r1=280322&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchema.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchema.java Mon Sep 12 11:04:50 2005
@@ -13,9 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.jing;
import org.apache.cocoon.components.validation.ValidationHandler;
+import org.apache.cocoon.components.validation.impl.AbstractSchema;
+import org.apache.cocoon.components.validation.impl.DefaultValidationHandler;
import org.apache.excalibur.source.SourceValidity;
import org.xml.sax.ContentHandler;
import org.xml.sax.ErrorHandler;
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchemaParser.java (from r280342, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchemaParser.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchemaParser.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchemaParser.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchemaParser.java&r1=280342&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/JingSchemaParser.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/jing/JingSchemaParser.java Mon Sep 12 11:04:50 2005
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.jing;
import java.io.IOException;
@@ -21,13 +21,18 @@
import org.apache.cocoon.components.validation.Schema;
import org.apache.cocoon.components.validation.SchemaParser;
import org.apache.cocoon.components.validation.Validator;
+import org.apache.cocoon.components.validation.impl.AbstractSchemaParser;
+import org.apache.cocoon.components.validation.impl.DraconianErrorHandler;
import org.apache.excalibur.source.Source;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+import com.thaiopensource.util.PropertyMap;
+import com.thaiopensource.util.PropertyMapBuilder;
import com.thaiopensource.validate.IncorrectSchemaException;
import com.thaiopensource.validate.SchemaReader;
+import com.thaiopensource.validate.ValidateProperty;
import com.thaiopensource.validate.rng.SAXSchemaReader;
/**
@@ -67,13 +72,23 @@
}
SchemaReader schemaReader = SAXSchemaReader.getInstance();
- JingContext context = new JingContext(sourceResolver, entityResolver);
+ JingResolver context = new JingResolver(sourceResolver, entityResolver);
InputSource input = context.resolveSource(source);
try {
+ /* Create a simple property map builder */
+ PropertyMapBuilder builder = new PropertyMapBuilder();
+ ValidateProperty.ENTITY_RESOLVER.put(builder, context);
+ ValidateProperty.XML_READER_CREATOR.put(builder, context);
+ ValidateProperty.ERROR_HANDLER.put(builder,
+ DraconianErrorHandler.INSTANCE);
+ PropertyMap validatorProperties = builder.toPropertyMap();
+
+ /* Parse, rewrap, and return the schema */
final com.thaiopensource.validate.Schema schema;
- schema = schemaReader.createSchema(input, context.getProperties());
- return new JingSchema(schema, context.getValidity());
+ schema = schemaReader.createSchema(input, validatorProperties);
+ return new JingSchema(schema, context.close());
+
} catch (IncorrectSchemaException exception) {
String message = "Incorrect schema \"" + source.getURI() + "\"";
throw new SAXException(message, exception);
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContentHandler.java (from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContentHandler.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContentHandler.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContentHandler.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContentHandler.java&r1=280322&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContentHandler.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContentHandler.java Mon Sep 12 11:04:50 2005
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.xerces;
import org.apache.xerces.util.NamespaceSupport;
import org.apache.xerces.util.SAXLocatorWrapper;
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContext.java (from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContext.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContext.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContext.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContext.java&r1=280322&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesContext.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesContext.java Mon Sep 12 11:04:50 2005
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.xerces;
import java.util.Iterator;
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesEntityResolver.java (from r280342, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesEntityResolver.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesEntityResolver.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesEntityResolver.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesEntityResolver.java&r1=280342&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesEntityResolver.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesEntityResolver.java Mon Sep 12 11:04:50 2005
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.xerces;
import java.io.IOException;
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesGrammarParser.java (from r280342, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesGrammarParser.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesGrammarParser.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesGrammarParser.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesGrammarParser.java&r1=280342&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesGrammarParser.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesGrammarParser.java Mon Sep 12 11:04:50 2005
@@ -13,12 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.xerces;
import java.io.IOException;
import org.apache.cocoon.components.validation.Schema;
import org.apache.cocoon.components.validation.SchemaParser;
+import org.apache.cocoon.components.validation.impl.AbstractSchemaParser;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceValidity;
import org.apache.xerces.util.XMLGrammarPoolImpl;
@@ -78,9 +79,9 @@
context.initialize(loader);
/* Load (parse and interpret) the grammar */
- this.getLogger().debug("Loading grammar from " + source.getURI());
+ this.logger.debug("Loading grammar from " + source.getURI());
loader.loadGrammar(r.resolveSource(source));
- this.getLogger().debug("Grammar loaded from " + source.getURI());
+ this.logger.debug("Grammar loaded from " + source.getURI());
/* Return a new Schema instance */
SourceValidity validity = r.getSourceValidity();
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesParseException.java (from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesParseException.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesParseException.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesParseException.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesParseException.java&r1=280322&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesParseException.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesParseException.java Mon Sep 12 11:04:50 2005
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.xerces;
import org.apache.xerces.xni.parser.XMLParseException;
import org.xml.sax.SAXParseException;
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchema.java (from r280322, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchema.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchema.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchema.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchema.java&r1=280322&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchema.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchema.java Mon Sep 12 11:04:50 2005
@@ -13,9 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.xerces;
import org.apache.cocoon.components.validation.ValidationHandler;
+import org.apache.cocoon.components.validation.impl.AbstractSchema;
+import org.apache.cocoon.components.validation.impl.DefaultValidationHandler;
import org.apache.excalibur.source.SourceValidity;
import org.apache.xerces.xni.XMLDocumentHandler;
import org.apache.xerces.xni.grammars.XMLGrammarPool;
Copied: cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchemaParser.java (from r280323, cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchemaParser.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchemaParser.java?p2=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchemaParser.java&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchemaParser.java&r1=280323&r2=280379&rev=280379&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/impl/XercesSchemaParser.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/validation/java/org/apache/cocoon/components/validation/xerces/XercesSchemaParser.java Mon Sep 12 11:04:50 2005
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.components.validation.impl;
+package org.apache.cocoon.components.validation.xerces;
import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.components.validation.SchemaParser;