mrglavas 2004/03/16 14:03:22 Modified: java/src/org/apache/xerces/impl XMLDocumentScannerImpl.java XMLEntityManager.java Added: java/src/org/apache/xerces/impl XMLEntityDescription.java java/src/org/apache/xerces/util XMLEntityDescriptionImpl.java Log: Preparing for SAX2 Extensions 1.1. As first step towards supporting
EntityResolver2, create a new interface which extends XMLResourceIdentifier that communicates the name of an entity in addition to its location. This is required to support EntityResolver2.resolveEntity() whose first parameter is the name of the entity. Revision Changes Path 1.43 +5 -5 xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentScannerImpl.java Index: XMLDocumentScannerImpl.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentScannerImpl.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- XMLDocumentScannerImpl.java 11 Mar 2004 18:15:17 -0000 1.42 +++ XMLDocumentScannerImpl.java 16 Mar 2004 22:03:22 -0000 1.43 @@ -24,7 +24,7 @@ import org.apache.xerces.impl.validation.ValidationManager; import org.apache.xerces.util.NamespaceSupport; import org.apache.xerces.util.XMLChar; -import org.apache.xerces.util.XMLResourceIdentifierImpl; +import org.apache.xerces.util.XMLEntityDescriptionImpl; import org.apache.xerces.util.XMLStringBuffer; import org.apache.xerces.xni.Augmentations; import org.apache.xerces.xni.NamespaceContext; @@ -894,7 +894,7 @@ fEntityManager.setEntityHandler(null); try { boolean again; - XMLResourceIdentifierImpl resourceIdentifier = new XMLResourceIdentifierImpl(); + XMLEntityDescriptionImpl entityDescription = new XMLEntityDescriptionImpl(); do { again = false; switch (fScannerState) { @@ -933,9 +933,9 @@ break; } case SCANNER_STATE_DTD_EXTERNAL: { - resourceIdentifier.setValues(fDoctypePublicId, fDoctypeSystemId, null, null); + entityDescription.setDescription("[dtd]", fDoctypePublicId, fDoctypeSystemId, null, null); XMLInputSource xmlInputSource = - fEntityManager.resolveEntity(resourceIdentifier); + fEntityManager.resolveEntity(entityDescription); fDTDScanner.setInputSource(xmlInputSource); setScannerState(SCANNER_STATE_DTD_EXTERNAL_DECLS); again = true; 1.79 +7 -3 xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java Index: XMLEntityManager.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java,v retrieving revision 1.78 retrieving revision 1.79 diff -u -r1.78 -r1.79 --- XMLEntityManager.java 5 Mar 2004 22:17:00 -0000 1.78 +++ XMLEntityManager.java 16 Mar 2004 22:03:22 -0000 1.79 @@ -39,6 +39,7 @@ import org.apache.xerces.util.SymbolTable; import org.apache.xerces.util.URI; import org.apache.xerces.util.XMLChar; +import org.apache.xerces.util.XMLEntityDescriptionImpl; import org.apache.xerces.util.XMLResourceIdentifierImpl; import org.apache.xerces.xni.Augmentations; import org.apache.xerces.xni.XMLResourceIdentifier; @@ -489,7 +490,8 @@ } } Entity entity = new ExternalEntity(name, - new XMLResourceIdentifierImpl(publicId, literalSystemId, baseSystemId, expandSystemId(literalSystemId, baseSystemId, false)), null, fInExternalSubset); + new XMLEntityDescriptionImpl(name, publicId, literalSystemId, baseSystemId, + expandSystemId(literalSystemId, baseSystemId, false)), null, fInExternalSubset); fEntities.put(name, entity); } else{ @@ -556,7 +558,9 @@ String publicId, String systemId, String baseSystemId, String notation) { if (!fEntities.containsKey(name)) { - Entity entity = new ExternalEntity(name, new XMLResourceIdentifierImpl(publicId, systemId, baseSystemId, null), notation, fInExternalSubset); + Entity entity = new ExternalEntity(name, + new XMLEntityDescriptionImpl(name, publicId, systemId, baseSystemId, null), + notation, fInExternalSubset); fEntities.put(name, entity); } else{ 1.1 xml-xerces/java/src/org/apache/xerces/impl/XMLEntityDescription.java Index: XMLEntityDescription.java =================================================================== /* * Copyright 2004 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; import org.apache.xerces.xni.XMLResourceIdentifier; /** * <p>This interface describes the properties of entities--their * physical location and their name.</p> * * @author Michael Glavassevich, IBM * * @version $Id: XMLEntityDescription.java,v 1.1 2004/03/16 22:03:22 mrglavas Exp $ */ public interface XMLEntityDescription extends XMLResourceIdentifier { /** * Sets the name of the entity. * * @param name the name of the entity */ public void setEntityName(String name); /** * Returns the name of the entity. * * @return the name of the entity */ public String getEntityName(); } // XMLEntityDescription 1.1 xml-xerces/java/src/org/apache/xerces/util/XMLEntityDescriptionImpl.java Index: XMLEntityDescriptionImpl.java =================================================================== /* * Copyright 2004 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.util; import org.apache.xerces.impl.XMLEntityDescription; /** * <p>This class is an implementation of the XMLEntityDescription * interface which describes the properties of an entity.</p> * * @author Michael Glavassevich, IBM * * @version $Id: XMLEntityDescriptionImpl.java,v 1.1 2004/03/16 22:03:22 mrglavas Exp $ */ public class XMLEntityDescriptionImpl extends XMLResourceIdentifierImpl implements XMLEntityDescription { // // Constructors // /** Constructs an empty entity description. */ public XMLEntityDescriptionImpl() {} // <init>() /** * Constructs an entity description. * * @param entityName The name of the entity. * @param publicId The public identifier. * @param literalSystemId The literal system identifier. * @param baseSystemId The base system identifier. * @param expandedSystemId The expanded system identifier. */ public XMLEntityDescriptionImpl(String entityName, String publicId, String literalSystemId, String baseSystemId, String expandedSystemId) { setDescription(entityName, publicId, literalSystemId, baseSystemId, expandedSystemId); } // <init>(String,String,String,String,String) /** * Constructs a resource identifier. * * @param entityName The name of the entity. * @param publicId The public identifier. * @param literalSystemId The literal system identifier. * @param baseSystemId The base system identifier. * @param expandedSystemId The expanded system identifier. * @param namespace The namespace. */ public XMLEntityDescriptionImpl(String entityName, String publicId, String literalSystemId, String baseSystemId, String expandedSystemId, String namespace) { setDescription(entityName, publicId, literalSystemId, baseSystemId, expandedSystemId, namespace); } // <init>(String,String,String,String,String,String) // // Data // /** The name of the entity. */ protected String fEntityName; // // Public methods // /** * Sets the name of the entity. * * @param name the name of the entity */ public void setEntityName(String name) { fEntityName = name; } // setEntityName(String) /** * Returns the name of the entity. * * @return the name of the entity */ public String getEntityName() { return fEntityName; } // getEntityName():String /** * <p>Sets the values of this entity description.</p> * * @param entityName The name of the entity. * @param publicId The public identifier. * @param literalSystemId The literal system identifier. * @param baseSystemId The base system identifier. * @param expandedSystemId The expanded system identifier. */ public void setDescription(String entityName, String publicId, String literalSystemId, String baseSystemId, String expandedSystemId) { setDescription(entityName, publicId, literalSystemId, baseSystemId, expandedSystemId, null); } // setDescription(String,String,String,String,String) /** * <p>Sets the values of this entity description.</p> * * @param entityName The name of the entity. * @param publicId The public identifier. * @param literalSystemId The literal system identifier. * @param baseSystemId The base system identifier. * @param expandedSystemId The expanded system identifier. * @param namespace The namespace. */ public void setDescription(String entityName, String publicId, String literalSystemId, String baseSystemId, String expandedSystemId, String namespace) { fEntityName = entityName; setValues(publicId, literalSystemId, baseSystemId, expandedSystemId, namespace); } // setDescription(String,String,String,String,String,String) /** * <p>Clears the values.</p> */ public void clear() { super.clear(); fEntityName = null; } // clear() // // Object methods // /** Returns a hash code for this object. */ public int hashCode() { int code = super.hashCode(); if (fEntityName != null) { code += fEntityName.hashCode(); } return code; } // hashCode():int /** Returns a string representation of this object. */ public String toString() { StringBuffer str = new StringBuffer(); if (fEntityName != null) { str.append(fEntityName); } str.append(':'); if (fPublicId != null) { str.append(fPublicId); } str.append(':'); if (fLiteralSystemId != null) { str.append(fLiteralSystemId); } str.append(':'); if (fBaseSystemId != null) { str.append(fBaseSystemId); } str.append(':'); if (fExpandedSystemId != null) { str.append(fExpandedSystemId); } str.append(':'); if (fNamespace != null) { str.append(fNamespace); } return str.toString(); } // toString():String } // XMLEntityDescriptionImpl --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]