/* * The Apache Software License, Version 1.1 * * * Copyright (c) 2000-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xerces" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.apache.org. For more * information on the Apache Software Foundation, please see * . */ package com.sun.org.apache.xerces.internal.impl; import java.util.Enumeration; import java.util.NoSuchElementException; /** * Commonly used constants. * * @author Andy Clark, IBM * * @version $Id: Constants.java,v 1.42 2004/04/25 02:08:53 mrglavas Exp $ */ public final class Constants { // // Constants // // Schema Types: public static final String NS_XMLSCHEMA = "http://www.w3.org/2001/XMLSchema".intern(); public static final String NS_DTD = "http://www.w3.org/TR/REC-xml".intern(); // sax features /** SAX feature prefix ("http://xml.org/sax/features/"). */ public static final String SAX_FEATURE_PREFIX = "http://xml.org/sax/features/"; /** Namespaces feature ("namespaces"). */ public static final String NAMESPACES_FEATURE = "namespaces"; /** Namespace prefixes feature ("namespace-prefixes"). */ public static final String NAMESPACE_PREFIXES_FEATURE = "namespace-prefixes"; /** String interning feature ("string-interning"). */ public static final String STRING_INTERNING_FEATURE = "string-interning"; /** Validation feature ("validation"). */ public static final String VALIDATION_FEATURE = "validation"; /** External general entities feature ("external-general-entities "). */ public static final String EXTERNAL_GENERAL_ENTITIES_FEATURE = "external-general-entities"; /** External parameter entities feature ("external-parameter-entities "). */ public static final String EXTERNAL_PARAMETER_ENTITIES_FEATURE = "external-parameter-entities"; /** Lexical handler parameter entities feature ("lexical-handler/parameter-entities"). */ public static final String LEXICAL_HANDLER_PARAMETER_ENTITIES_FEATURE = "lexical-handler/parameter-entities"; /** Is standalone feature ("is-standalone"). */ public static final String IS_STANDALONE_FEATURE = "is-standalone"; /** Resolve DTD URIs feature ("resolve-dtd-uris"). */ public static final String RESOLVE_DTD_URIS_FEATURE = "resolve-dtd-uris"; /** Use Attributes2 feature ("use-attributes2"). */ public static final String USE_ATTRIBUTES2_FEATURE = "use-attributes2"; /** Use Locator2 feature ("use-locator2"). */ public static final String USE_LOCATOR2_FEATURE = "use-locator2"; /** Use EntityResolver2 feature ("use-entity-resolver2"). */ public static final String USE_ENTITY_RESOLVER2_FEATURE = "use-entity-resolver2"; /** Unicode normalization checking feature ("unicode-normalization-checking"). */ public static final String UNICODE_NORMALIZATION_CHECKING_FEATURE = "unicode-normalization-checking"; /** xmlns URIs feature ("xmlns-uris"). */ public static final String XMLNS_URIS_FEATURE = "xmlns-uris"; /** XML 1.1 feature ("xml-1.1"). */ public static final String XML_11_FEATURE = "xml-1.1"; /** Allow unparsed entity and notation declaration events to be sent after the end DTD event ("allow-dtd-events-after-endDTD") */ public static final String ALLOW_DTD_EVENTS_AFTER_ENDDTD_FEATURE = "allow-dtd-events-after-endDTD"; // sax properties /** SAX property prefix ("http://xml.org/sax/properties/"). */ public static final String SAX_PROPERTY_PREFIX = "http://xml.org/sax/properties/"; /** Declaration handler property ("declaration-handler"). */ public static final String DECLARATION_HANDLER_PROPERTY = "declaration-handler"; /** Lexical handler property ("lexical-handler"). */ public static final String LEXICAL_HANDLER_PROPERTY = "lexical-handler"; /** DOM node property ("dom-node"). */ public static final String DOM_NODE_PROPERTY = "dom-node"; /** XML string property ("xml-string"). */ public static final String XML_STRING_PROPERTY = "xml-string"; public static final String FEATURE_SECURE_PROCESSING = "http://javax.xml.XMLConstants/feature/secure-processing"; /** Document XML version property ("document-xml-version"). */ public static final String DOCUMENT_XML_VERSION_PROPERTY = "document-xml-version"; // // JAXP properties // /** JAXP property prefix ("http://java.sun.com/xml/jaxp/properties/"). */ public static final String JAXP_PROPERTY_PREFIX = "http://java.sun.com/xml/jaxp/properties/"; /** JAXP schemaSource property: when used internally may include DTD sources (DOM) */ public static final String SCHEMA_SOURCE = "schemaSource"; /** JAXP schemaSource language: when used internally may include DTD namespace (DOM) */ public static final String SCHEMA_LANGUAGE = "schemaLanguage"; public static final String SYSTEM_PROPERTY_ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ; // // DOM features // /** Comments feature ("include-comments"). */ public static final String INCLUDE_COMMENTS_FEATURE = "include-comments"; /** Create cdata nodes feature ("create-cdata-nodes"). */ public static final String CREATE_CDATA_NODES_FEATURE = "create-cdata-nodes"; /** Feature id: load as infoset. */ public static final String LOAD_AS_INFOSET = "load-as-infoset"; // // Constants: DOM Level 3 feature ids // public static final String DOM_CANONICAL_FORM = "canonical-form"; public static final String DOM_CDATA_SECTIONS ="cdata-sections"; public static final String DOM_COMMENTS = "comments"; // REVISIT: this feature seems to have no effect for Xerces public static final String DOM_CHARSET_OVERRIDES_XML_ENCODING = "charset-overrides-xml-encoding"; public static final String DOM_DATATYPE_NORMALIZATION = "datatype-normalization"; public static final String DOM_ENTITIES = "entities"; public static final String DOM_INFOSET = "infoset"; public static final String DOM_NAMESPACES = "namespaces"; public static final String DOM_NAMESPACE_DECLARATIONS = "namespace-declarations"; public static final String DOM_SUPPORTED_MEDIATYPES_ONLY = "supported-media-types-only"; public static final String DOM_VALIDATE_IF_SCHEMA = "validate-if-schema"; public static final String DOM_VALIDATE = "validate"; public static final String DOM_ELEMENT_CONTENT_WHITESPACE = "element-content-whitespace"; // DOM Level 3 features defined in Core: public static final String DOM_DISCARD_DEFAULT_CONTENT = "discard-default-content"; public static final String DOM_NORMALIZE_CHARACTERS = "normalize-characters"; public static final String DOM_CHECK_CHAR_NORMALIZATION = "check-character-normalization"; public static final String DOM_WELLFORMED = "well-formed"; public static final String DOM_SPLIT_CDATA = "split-cdata-sections"; // Load and Save public static final String DOM_FORMAT_PRETTY_PRINT = "format-pretty-print"; public static final String DOM_XMLDECL = "xml-declaration"; public static final String DOM_UNKNOWNCHARS = "unknown-characters"; public static final String DOM_CERTIFIED = "certified"; public static final String DOM_DISALLOW_DOCTYPE = "disallow-doctype"; public static final String DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS = "ignore-unknown-character-denormalizations"; // DOM Properties public static final String DOM_RESOURCE_RESOLVER = "resource-resolver"; public static final String DOM_ERROR_HANDLER = "error-handler"; public static final String DOM_SCHEMA_TYPE = "schema-type"; public static final String DOM_SCHEMA_LOCATION = "schema-location"; // XSModel public static final String DOM_PSVI = "psvi"; // xerces features /** Xerces features prefix ("http://apache.org/xml/features/"). */ public static final String XERCES_FEATURE_PREFIX = "http://apache.org/xml/features/"; /** Schema validation feature ("validation/schema"). */ public static final String SCHEMA_VALIDATION_FEATURE = "validation/schema"; /** Expose schema normalized values */ public static final String SCHEMA_NORMALIZED_VALUE = "validation/schema/normalized-value"; /** Send schema default value via characters() */ public static final String SCHEMA_ELEMENT_DEFAULT = "validation/schema/element-default"; /** Schema full constraint checking ("validation/schema-full-checking"). */ public static final String SCHEMA_FULL_CHECKING = "validation/schema-full-checking"; /** Augment Post-Schema-Validation-Infoset */ public static final String SCHEMA_AUGMENT_PSVI = "validation/schema/augment-psvi"; /** Dynamic validation feature ("validation/dynamic"). */ public static final String DYNAMIC_VALIDATION_FEATURE = "validation/dynamic"; /** Warn on duplicate attribute declaration feature ("validation/warn-on-duplicate-attdef"). */ public static final String WARN_ON_DUPLICATE_ATTDEF_FEATURE = "validation/warn-on-duplicate-attdef"; /** Warn on undeclared element feature ("validation/warn-on-undeclared-elemdef"). */ public static final String WARN_ON_UNDECLARED_ELEMDEF_FEATURE = "validation/warn-on-undeclared-elemdef"; /** Warn on duplicate entity declaration feature ("warn-on-duplicate-entitydef"). */ public static final String WARN_ON_DUPLICATE_ENTITYDEF_FEATURE = "warn-on-duplicate-entitydef"; /** Allow Java encoding names feature ("allow-java-encodings"). */ public static final String ALLOW_JAVA_ENCODINGS_FEATURE = "allow-java-encodings"; /** Disallow DOCTYPE declaration feature ("disallow-doctype-decl"). */ public static final String DISALLOW_DOCTYPE_DECL_FEATURE = "disallow-doctype-decl"; /** Continue after fatal error feature ("continue-after-fatal-error"). */ public static final String CONTINUE_AFTER_FATAL_ERROR_FEATURE = "continue-after-fatal-error"; /** Load dtd grammar when nonvalidating feature ("nonvalidating/load-dtd-grammar"). */ public static final String LOAD_DTD_GRAMMAR_FEATURE = "nonvalidating/load-dtd-grammar"; /** Load external dtd when nonvalidating feature ("nonvalidating/load-external-dtd"). */ public static final String LOAD_EXTERNAL_DTD_FEATURE = "nonvalidating/load-external-dtd"; /** Defer node expansion feature ("dom/defer-node-expansion"). */ public static final String DEFER_NODE_EXPANSION_FEATURE = "dom/defer-node-expansion"; /** Create entity reference nodes feature ("dom/create-entity-ref-nodes"). */ public static final String CREATE_ENTITY_REF_NODES_FEATURE = "dom/create-entity-ref-nodes"; /** Include ignorable whitespace feature ("dom/include-ignorable-whitespace"). */ public static final String INCLUDE_IGNORABLE_WHITESPACE = "dom/include-ignorable-whitespace"; /** Default attribute values feature ("validation/default-attribute-values"). */ public static final String DEFAULT_ATTRIBUTE_VALUES_FEATURE = "validation/default-attribute-values"; /** Validate content models feature ("validation/validate-content-models"). */ public static final String VALIDATE_CONTENT_MODELS_FEATURE = "validation/validate-content-models"; /** Validate datatypes feature ("validation/validate-datatypes"). */ public static final String VALIDATE_DATATYPES_FEATURE = "validation/validate-datatypes"; /** Notify character references feature (scanner/notify-char-refs"). */ public static final String NOTIFY_CHAR_REFS_FEATURE = "scanner/notify-char-refs"; /** Notify built-in (&amp;, etc.) references feature (scanner/notify-builtin-refs"). */ public static final String NOTIFY_BUILTIN_REFS_FEATURE = "scanner/notify-builtin-refs"; /** Standard URI conformant feature ("standard-uri-conformant"). */ public static final String STANDARD_URI_CONFORMANT_FEATURE = "standard-uri-conformant"; /** Internal performance related feature: * false - the parser settings (features/properties) have not changed between 2 parses * true - the parser settings have changed between 2 parses * NOTE: this feature should only be set by the parser configuration. */ public static final String PARSER_SETTINGS = "internal/parser-settings"; /** Feature to make XML Processor XInclude Aware */ public static final String XINCLUDE_AWARE = "xinclude-aware"; /** Ignore xsi:schemaLocation and xsi:noNamespaceSchemaLocation. */ public static final String IGNORE_SCHEMA_LOCATION_HINTS = "validation/schema/ignore-schema-location-hints"; /** * When true, the schema processor will change characters events * to ignorableWhitespaces events, when characters are expected to * only contain ignorable whitespaces. */ public static final String CHANGE_IGNORABLE_CHARACTERS_INTO_IGNORABLE_WHITESPACES = "validation/change-ignorable-characters-into-ignorable-whitespaces"; // xerces properties /** Xerces properties prefix ("http://apache.org/xml/properties/"). */ public static final String XERCES_PROPERTY_PREFIX = "http://apache.org/xml/properties/"; /** Current element node property ("dom/current-element-node"). */ public static final String CURRENT_ELEMENT_NODE_PROPERTY = "dom/current-element-node"; /** Document class name property ("dom/document-class-name"). */ public static final String DOCUMENT_CLASS_NAME_PROPERTY = "dom/document-class-name"; /** Symbol table property ("internal/symbol-table"). */ public static final String SYMBOL_TABLE_PROPERTY = "internal/symbol-table"; /** Error reporter property ("internal/error-reporter"). */ public static final String ERROR_REPORTER_PROPERTY = "internal/error-reporter"; /** Error handler property ("internal/error-handler"). */ public static final String ERROR_HANDLER_PROPERTY = "internal/error-handler"; /** XInclude handler property ("internal/xinclude-handler"). */ public static final String XINCLUDE_HANDLER_PROPERTY = "internal/xinclude-handler"; /** Entity manager property ("internal/entity-manager"). */ public static final String ENTITY_MANAGER_PROPERTY = "internal/entity-manager"; /** Input buffer size property ("input-buffer-size"). */ public static final String BUFFER_SIZE_PROPERTY = "input-buffer-size"; /** Security manager property ("security-manager"). */ public static final String SECURITY_MANAGER_PROPERTY = "security-manager"; /** property identifier: security manager. */ protected static final String SECURITY_MANAGER = Constants.XERCES_PROPERTY_PREFIX + Constants.SECURITY_MANAGER_PROPERTY; /** Entity resolver property ("internal/entity-resolver"). */ public static final String ENTITY_RESOLVER_PROPERTY = "internal/entity-resolver"; /** Grammar pool property ("internal/grammar-pool"). */ public static final String XMLGRAMMAR_POOL_PROPERTY = "internal/grammar-pool"; /** Datatype validator factory ("internal/datatype-validator-factory"). */ public static final String DATATYPE_VALIDATOR_FACTORY_PROPERTY = "internal/datatype-validator-factory"; /** Document scanner property ("internal/document-scanner"). */ public static final String DOCUMENT_SCANNER_PROPERTY = "internal/document-scanner"; /** DTD scanner property ("internal/dtd-scanner"). */ public static final String DTD_SCANNER_PROPERTY = "internal/dtd-scanner"; /** DTD processor property ("internal/dtd-processor"). */ public static final String DTD_PROCESSOR_PROPERTY = "internal/dtd-processor"; /** Validator property ("internal/validator"). */ public static final String VALIDATOR_PROPERTY = "internal/validator"; /** Validator property ("internal/validator/dtd"). */ public static final String DTD_VALIDATOR_PROPERTY = "internal/validator/dtd"; /** Validator property ("internal/validator/schema"). */ public static final String SCHEMA_VALIDATOR_PROPERTY = "internal/validator/schema"; /** No namespace schema location property ("schema/external-schemaLocation"). */ public static final String SCHEMA_LOCATION = "schema/external-schemaLocation"; /** Schema location property ("schema/external-noNamespaceSchemaLocation"). */ public static final String SCHEMA_NONS_LOCATION = "schema/external-noNamespaceSchemaLocation"; /** Namespace binder property ("internal/namespace-binder"). */ public static final String NAMESPACE_BINDER_PROPERTY = "internal/namespace-binder"; /** Namespace context property ("internal/namespace-context"). */ public static final String NAMESPACE_CONTEXT_PROPERTY = "internal/namespace-context"; /** Validation manager property ("internal/validation-manager"). */ public static final String VALIDATION_MANAGER_PROPERTY = "internal/validation-manager"; /** XPointer Schema property ("xpointer-schema"). */ public static final String XPOINTER_SCHEMA_PROPERTY = "xpointer-schema"; // general constants /** Element PSVI is stored in augmentations using string "ELEMENT_PSVI" */ public final static String ELEMENT_PSVI = "ELEMENT_PSVI"; /* Attribute PSVI is stored in augmentations using string "ATTRIBUTE_PSVI" */ public final static String ATTRIBUTE_PSVI = "ATTRIBUTE_PSVI"; /** * Boolean indicating whether an attribute is declared in the DTD is stored * in augmentations using the string "ATTRIBUTE_DECLARED". The absence of this * augmentation indicates that the attribute was not declared in the DTD. */ public final static String ATTRIBUTE_DECLARED = "ATTRIBUTE_DECLARED"; public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit"; public final static String MAX_OCCUR_LIMIT = "maxOccurLimit"; /** * {@link org.w3c.dom.TypeInfo} associated with current element/attribute * is stored in augmentations using this string as the key. * * This will ultimately controls {@link com.sun.org.apache.xerces.internal.parsers.AbstractDOMParser} * regarding what object the DOM will return from * {@link org.w3c.dom.Attr#getSchemaTypeInfo()} and * {@link org.w3c.dom.Element#getSchemaTypeInfo()} and */ public final static String TYPEINFO = "org.w3c.dom.TypeInfo"; /** * Whether an attribute is an id or not is stored in augmentations * using this string as the key. The value is {@link Boolean#TRUE} * or {@link Boolean#FALSE}. * * This will ultimately controls {@link com.sun.org.apache.xerces.internal.parsers.AbstractDOMParser} * about whether it will mark an attribute as ID or not. */ public final static String ID_ATTRIBUTE = "ID_ATTRIBUTE"; // XML version constants /** * Boolean indicating whether an entity referenced in the document has * not been read is stored in augmentations using the string "ENTITY_SKIPPED". * The absence of this augmentation indicates that the entity had a * declaration and was expanded. */ public final static String ENTITY_SKIPPED = "ENTITY_SKIPPED"; /** * Boolean indicating whether a character is a probable white space * character (ch <= 0x20) that was the replacement text of a character * reference is stored in augmentations using the string "CHAR_REF_PROBABLE_WS". * The absence of this augmentation indicates that the character is not * probable white space and/or was not included from a character reference. */ public final static String CHAR_REF_PROBABLE_WS = "CHAR_REF_PROBABLE_WS"; // XML version constants public final static short XML_VERSION_1_0 = 1; public final static short XML_VERSION_1_1 = 2; // DOM related constants public final static String ANONYMOUS_TYPE_NAMESPACE = "http://apache.org/xml/xmlschema/1.0/anonymousTypes"; // private /** SAX features. */ private static final String[] fgSAXFeatures = { NAMESPACES_FEATURE, NAMESPACE_PREFIXES_FEATURE, STRING_INTERNING_FEATURE, VALIDATION_FEATURE, EXTERNAL_GENERAL_ENTITIES_FEATURE, EXTERNAL_PARAMETER_ENTITIES_FEATURE, }; /** SAX properties. */ private static final String[] fgSAXProperties = { DECLARATION_HANDLER_PROPERTY, LEXICAL_HANDLER_PROPERTY, DOM_NODE_PROPERTY, XML_STRING_PROPERTY, }; /** Xerces features. */ private static final String[] fgXercesFeatures = { SCHEMA_VALIDATION_FEATURE, SCHEMA_FULL_CHECKING, DYNAMIC_VALIDATION_FEATURE, WARN_ON_DUPLICATE_ATTDEF_FEATURE, WARN_ON_UNDECLARED_ELEMDEF_FEATURE, ALLOW_JAVA_ENCODINGS_FEATURE, CONTINUE_AFTER_FATAL_ERROR_FEATURE, LOAD_DTD_GRAMMAR_FEATURE, LOAD_EXTERNAL_DTD_FEATURE, //DEFER_NODE_EXPANSION_FEATURE, CREATE_ENTITY_REF_NODES_FEATURE, XINCLUDE_AWARE, INCLUDE_IGNORABLE_WHITESPACE, //GRAMMAR_ACCESS_FEATURE, DEFAULT_ATTRIBUTE_VALUES_FEATURE, VALIDATE_CONTENT_MODELS_FEATURE, VALIDATE_DATATYPES_FEATURE, NOTIFY_CHAR_REFS_FEATURE, NOTIFY_BUILTIN_REFS_FEATURE, DISALLOW_DOCTYPE_DECL_FEATURE, STANDARD_URI_CONFORMANT_FEATURE }; /** Xerces properties. */ private static final String[] fgXercesProperties = { CURRENT_ELEMENT_NODE_PROPERTY, DOCUMENT_CLASS_NAME_PROPERTY, SYMBOL_TABLE_PROPERTY, ERROR_HANDLER_PROPERTY, ERROR_REPORTER_PROPERTY, ENTITY_MANAGER_PROPERTY, ENTITY_RESOLVER_PROPERTY, XMLGRAMMAR_POOL_PROPERTY, DATATYPE_VALIDATOR_FACTORY_PROPERTY, DOCUMENT_SCANNER_PROPERTY, DTD_SCANNER_PROPERTY, VALIDATOR_PROPERTY, SCHEMA_LOCATION, SCHEMA_NONS_LOCATION, VALIDATION_MANAGER_PROPERTY, BUFFER_SIZE_PROPERTY, SECURITY_MANAGER_PROPERTY }; /** Empty enumeration. */ private static final Enumeration fgEmptyEnumeration = new ArrayEnumeration(new Object[] {}); // // Constructors // /** This class cannot be instantiated. */ private Constants() {} // // Public methods // // sax /** Returns an enumeration of the SAX features. */ public static Enumeration getSAXFeatures() { return fgSAXFeatures.length > 0 ? new ArrayEnumeration(fgSAXFeatures) : fgEmptyEnumeration; } // getSAXFeatures():Enumeration /** Returns an enumeration of the SAX properties. */ public static Enumeration getSAXProperties() { return fgSAXProperties.length > 0 ? new ArrayEnumeration(fgSAXProperties) : fgEmptyEnumeration; } // getSAXProperties():Enumeration // xerces /** Returns an enumeration of the Xerces features. */ public static Enumeration getXercesFeatures() { return fgXercesFeatures.length > 0 ? new ArrayEnumeration(fgXercesFeatures) : fgEmptyEnumeration; } // getXercesFeatures():Enumeration /** Returns an enumeration of the Xerces properties. */ public static Enumeration getXercesProperties() { return fgXercesProperties.length > 0 ? new ArrayEnumeration(fgXercesProperties) : fgEmptyEnumeration; } // getXercesProperties():Enumeration // // Classes // /** * An array enumeration. * * @author Andy Clark, IBM */ static class ArrayEnumeration implements Enumeration { // // Data // /** Array. */ private Object[] array; /** Index. */ private int index; // // Constructors // /** Constructs an array enumeration. */ public ArrayEnumeration(Object[] array) { this.array = array; } // (Object[]) // // Enumeration methods // /** * Tests if this enumeration contains more elements. * * @return true if this enumeration contains more elements; * false otherwise. * @since JDK1.0 */ public boolean hasMoreElements() { return index < array.length; } // hasMoreElement():boolean /** * Returns the next element of this enumeration. * * @return the next element of this enumeration. * @exception NoSuchElementException if no more elements exist. * @since JDK1.0 */ public Object nextElement() { if (index < array.length) { return array[index++]; } throw new NoSuchElementException(); } // nextElement():Object } // class ArrayEnumeration // // MAIN // /** Prints all of the constants to standard output. */ public static void main(String[] argv) { print("SAX features:", SAX_FEATURE_PREFIX, fgSAXFeatures); print("SAX properties:", SAX_PROPERTY_PREFIX, fgSAXProperties); print("Xerces features:", XERCES_FEATURE_PREFIX, fgXercesFeatures); print("Xerces properties:", XERCES_PROPERTY_PREFIX, fgXercesProperties); } // main(String[]) /** Prints a list of features/properties. */ private static void print(String header, String prefix, Object[] array) { System.out.print(header); if (array.length > 0) { System.out.println(); for (int i = 0; i < array.length; i++) { System.out.print(" "); System.out.print(prefix); System.out.println(array[i]); } } else { System.out.println(" none."); } } // print(String,String,Object[]) } // class Constants