001 package com.thaiopensource.relaxng.parse.sax;
002
003 import org.xml.sax.DTDHandler;
004 import org.xml.sax.SAXException;
005 import org.relaxng.datatype.ValidationContext;
006
007 import java.util.Hashtable;
008
009 public abstract class DtdContext implements DTDHandler, ValidationContext {
010 private final Hashtable notationTable;
011 private final Hashtable unparsedEntityTable;
012
013 public DtdContext() {
014 notationTable = new Hashtable();
015 unparsedEntityTable = new Hashtable();
016 }
017
018 public DtdContext(DtdContext dc) {
019 notationTable = dc.notationTable;
020 unparsedEntityTable = dc.unparsedEntityTable;
021 }
022
023 public void notationDecl(String name,
024 String publicId,
025 String systemId)
026 throws SAXException {
027 notationTable.put(name, name);
028 }
029
030 public void unparsedEntityDecl(String name,
031 String publicId,
032 String systemId,
033 String notationName)
034 throws SAXException {
035 unparsedEntityTable.put(name, name);
036 }
037
038 public boolean isNotation(String notationName) {
039 return notationTable.get(notationName) != null;
040 }
041
042 public boolean isUnparsedEntity(String entityName) {
043 return unparsedEntityTable.get(entityName) != null;
044 }
045
046 public void clearDtdContext() {
047 notationTable.clear();
048 unparsedEntityTable.clear();
049 }
050 }