Author: mrglavas Date: Mon Jan 23 08:24:17 2006 New Revision: 371571 URL: http://svn.apache.org/viewcvs?rev=371571&view=rev Log: Adding an extension to ValidationState which can be configured to turn off checking for ID/IDREF errors and unparsed entity errors. This is need to support the http://apache.org/xml/features/validation/id-idref-checking and http://apache.org/xml/features/validation/unparsed-entity-checking.
Patch thanks to Peter McCracken. See http://issues.apache.org/jira/browse/XERCESJ-1131. Added: xerces/java/trunk/src/org/apache/xerces/impl/validation/ConfigurableValidationState.java Added: xerces/java/trunk/src/org/apache/xerces/impl/validation/ConfigurableValidationState.java URL: http://svn.apache.org/viewcvs/xerces/java/trunk/src/org/apache/xerces/impl/validation/ConfigurableValidationState.java?rev=371571&view=auto ============================================================================== --- xerces/java/trunk/src/org/apache/xerces/impl/validation/ConfigurableValidationState.java (added) +++ xerces/java/trunk/src/org/apache/xerces/impl/validation/ConfigurableValidationState.java Mon Jan 23 08:24:17 2006 @@ -0,0 +1,124 @@ +/* + * Copyright 2006 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.xerces.impl.validation; + +/** + * <p>An extension of ValidationState which can be configured to turn + * off checking for ID/IDREF errors and unparsed entity errors.</p> + * + * @xerces.internal + * + * @author Peter McCracken, IBM + * @version $Id: $ + */ +public class ConfigurableValidationState extends ValidationState { + + /** + * Whether to check for ID/IDREF errors + */ + private boolean fIdIdrefChecking; + + /** + * Whether to check for unparsed entity errors + */ + private boolean fUnparsedEntityChecking; + + /** + * Creates a new ConfigurableValidationState. + * By default, error checking for both ID/IDREFs + * and unparsed entities are turned on. + */ + public ConfigurableValidationState() { + super(); + fIdIdrefChecking = true; + fUnparsedEntityChecking = true; + } + + /** + * Turns checking for ID/IDREF errors on and off. + * @param setting: true to turn on error checking + * false to turn off error checking + */ + public void setIdIdrefChecking(boolean setting) { + fIdIdrefChecking = setting; + } + + /** + * Turns checking for unparsed entity errors on and off. + * @param setting: true to turn on error checking + * false to turn off error checking + */ + public void setUnparsedEntityChecking(boolean setting) { + fUnparsedEntityChecking = setting; + } + + /** + * Checks if all IDREFs have a corresponding ID. + * @return null, if ID/IDREF checking is turned off + * otherwise, returns the value of the super implementation + */ + public String checkIDRefID() { + return (fIdIdrefChecking) ? super.checkIDRefID() : null; + } + + /** + * Checks if an ID has already been declared. + * @return false, if ID/IDREF checking is turned off + * otherwise, returns the value of the super implementation + */ + public boolean isIdDeclared(String name) { + return (fIdIdrefChecking) ? super.isIdDeclared(name) : false; + } + + /** + * Checks if an entity is declared. + * @return true, if unparsed entity checking is turned off + * otherwise, returns the value of the super implementation + */ + public boolean isEntityDeclared(String name) { + return (fUnparsedEntityChecking) ? super.isEntityDeclared(name) : true; + } + + /** + * Checks if an entity is unparsed. + * @return true, if unparsed entity checking is turned off + * otherwise, returns the value of the super implementation + */ + public boolean isEntityUnparsed(String name) { + return (fUnparsedEntityChecking) ? super.isEntityUnparsed(name) : true; + } + + /** + * Adds the ID, if ID/IDREF checking is enabled. + * @param the ID to add + */ + public void addId(String name) { + if (fIdIdrefChecking) { + super.addId(name); + } + } + + /** + * Adds the IDREF, if ID/IDREF checking is enabled. + * @param the IDREF to add + */ + public void addIdRef(String name) { + if (fIdIdrefChecking) { + super.addIdRef(name); + } + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
