xmlschemavalidator.java

来自「JAVA 所有包」· Java 代码 · 共 1,737 行 · 第 1/5 页

JAVA
1,737
字号
                return;            }            // resize array if necessary            if (fContextCount == fContext.length) {                int newSize = fContextCount + INC_STACK_SIZE;                int[] newArray = new int[newSize];                System.arraycopy(fContext, 0, newArray, 0, fContextCount);                fContext = newArray;            }            fContext[fContextCount++] = fErrors.size();        }        // should be called on endElement: get all errors of the current element        public String[] popContext() {            if (!fAugPSVI) {                return null;            }            // get starting position of the current element            int contextPos = fContext[--fContextCount];            // number of errors of the current element            int size = fErrors.size() - contextPos;            // if no errors, return null            if (size == 0)                return null;            // copy errors from the list to an string array            String[] errors = new String[size];            for (int i = 0; i < size; i++) {                errors[i] = (String) fErrors.elementAt(contextPos + i);            }            // remove errors of the current element            fErrors.setSize(contextPos);            return errors;        }        // should be called when an attribute is done: get all errors of        // this attribute, but leave the errors to the containing element        // also called after an element was strictly assessed.        public String[] mergeContext() {            if (!fAugPSVI) {                return null;            }            // get starting position of the current element            int contextPos = fContext[--fContextCount];            // number of errors of the current element            int size = fErrors.size() - contextPos;            // if no errors, return null            if (size == 0)                return null;            // copy errors from the list to an string array            String[] errors = new String[size];            for (int i = 0; i < size; i++) {                errors[i] = (String) fErrors.elementAt(contextPos + i);            }            // don't resize the vector: leave the errors for this attribute            // to the containing element            return errors;        }        public void reportError(String domain, String key, Object[] arguments, short severity)            throws XNIException {            fErrorReporter.reportError(domain, key, arguments, severity);            if (fAugPSVI) {                fErrors.addElement(key);            }        } // reportError(String,String,Object[],short)        public void reportError(            XMLLocator location,            String domain,            String key,            Object[] arguments,            short severity)            throws XNIException {            fErrorReporter.reportError(location, domain, key, arguments, severity);            if (fAugPSVI) {                fErrors.addElement(key);            }        } // reportError(XMLLocator,String,String,Object[],short)    }    /** Error reporter. */    protected final XSIErrorReporter fXSIErrorReporter = new XSIErrorReporter();    /** Entity resolver */    protected XMLEntityResolver fEntityResolver;    // updated during reset    protected ValidationManager fValidationManager = null;    protected ValidationState fValidationState = new ValidationState();    protected XMLGrammarPool fGrammarPool;    // schema location property values    protected String fExternalSchemas = null;    protected String fExternalNoNamespaceSchema = null;    //JAXP Schema Source property    protected Object fJaxpSchemaSource = null;    /** Schema Grammar Description passed,  to give a chance to application to supply the Grammar */    protected final XSDDescription fXSDDescription = new XSDDescription();    protected final Hashtable fLocationPairs = new Hashtable();    // handlers    /** Document handler. */    protected XMLDocumentHandler fDocumentHandler;    protected XMLDocumentSource fDocumentSource;    //    // XMLComponent methods    //    /**     * Returns a list of feature identifiers that are recognized by     * this component. This method may return null if no features     * are recognized by this component.     */    public String[] getRecognizedFeatures() {        return (String[]) (RECOGNIZED_FEATURES.clone());    } // getRecognizedFeatures():String[]    /**     * Sets the state of a feature. This method is called by the component     * manager any time after reset when a feature changes state.     * <p>     * <strong>Note:</strong> Components should silently ignore features     * that do not affect the operation of the component.     *     * @param featureId The feature identifier.     * @param state     The state of the feature.     *     * @throws SAXNotRecognizedException The component should not throw     *                                   this exception.     * @throws SAXNotSupportedException The component should not throw     *                                  this exception.     */    public void setFeature(String featureId, boolean state) throws XMLConfigurationException {    } // setFeature(String,boolean)    /**     * Returns a list of property identifiers that are recognized by     * this component. This method may return null if no properties     * are recognized by this component.     */    public String[] getRecognizedProperties() {        return (String[]) (RECOGNIZED_PROPERTIES.clone());    } // getRecognizedProperties():String[]    /**     * Sets the value of a property. This method is called by the component     * manager any time after reset when a property changes value.     * <p>     * <strong>Note:</strong> Components should silently ignore properties     * that do not affect the operation of the component.     *     * @param propertyId The property identifier.     * @param value      The value of the property.     *     * @throws SAXNotRecognizedException The component should not throw     *                                   this exception.     * @throws SAXNotSupportedException The component should not throw     *                                  this exception.     */    public void setProperty(String propertyId, Object value) throws XMLConfigurationException {    } // setProperty(String,Object)    /**     * Returns the default state for a feature, or null if this     * component does not want to report a default value for this     * feature.     *     * @param featureId The feature identifier.     *     * @since Xerces 2.2.0     */    public Boolean getFeatureDefault(String featureId) {        for (int i = 0; i < RECOGNIZED_FEATURES.length; i++) {            if (RECOGNIZED_FEATURES[i].equals(featureId)) {                return FEATURE_DEFAULTS[i];            }        }        return null;    } // getFeatureDefault(String):Boolean    /**     * Returns the default state for a property, or null if this     * component does not want to report a default value for this     * property.     *     * @param propertyId The property identifier.     *     * @since Xerces 2.2.0     */    public Object getPropertyDefault(String propertyId) {        for (int i = 0; i < RECOGNIZED_PROPERTIES.length; i++) {            if (RECOGNIZED_PROPERTIES[i].equals(propertyId)) {                return PROPERTY_DEFAULTS[i];            }        }        return null;    } // getPropertyDefault(String):Object    //    // XMLDocumentSource methods    //    /** Sets the document handler to receive information about the document. */    public void setDocumentHandler(XMLDocumentHandler documentHandler) {        fDocumentHandler = documentHandler;    } // setDocumentHandler(XMLDocumentHandler)    /** Returns the document handler */    public XMLDocumentHandler getDocumentHandler() {        return fDocumentHandler;    } // setDocumentHandler(XMLDocumentHandler)    //    // XMLDocumentHandler methods    //    /** Sets the document source */    public void setDocumentSource(XMLDocumentSource source) {        fDocumentSource = source;    } // setDocumentSource    /** Returns the document source */    public XMLDocumentSource getDocumentSource() {        return fDocumentSource;    } // getDocumentSource    /**     * The start of the document.     *     * @param locator The system identifier of the entity if the entity     *                 is external, null otherwise.     * @param encoding The auto-detected IANA encoding name of the entity     *                 stream. This value will be null in those situations     *                 where the entity encoding is not auto-detected (e.g.     *                 internal entities or a document entity that is     *                 parsed from a java.io.Reader).     * @param namespaceContext     *                 The namespace context in effect at the     *                 start of this document.     *                 This object represents the current context.     *                 Implementors of this class are responsible     *                 for copying the namespace bindings from the     *                 the current context (and its parent contexts)     *                 if that information is important.     * @param augs     Additional information that may include infoset augmentations     *     * @throws XNIException Thrown by handler to signal an error.     */    public void startDocument(        XMLLocator locator,        String encoding,        NamespaceContext namespaceContext,        Augmentations augs)        throws XNIException {        fValidationState.setNamespaceSupport(namespaceContext);        fState4XsiType.setNamespaceSupport(namespaceContext);        fState4ApplyDefault.setNamespaceSupport(namespaceContext);        fLocator = locator;        handleStartDocument(locator, encoding);        // call handlers        if (fDocumentHandler != null) {            fDocumentHandler.startDocument(locator, encoding, namespaceContext, augs);        }    } // startDocument(XMLLocator,String)    /**     * Notifies of the presence of an XMLDecl line in the document. If     * present, this method will be called immediately following the     * startDocument call.     *     * @param version    The XML version.     * @param encoding   The IANA encoding name of the document, or null if     *                   not specified.     * @param standalone The standalone value, or null if not specified.     * @param augs     Additional information that may include infoset augmentations     *     * @throws XNIException Thrown by handler to signal an error.     */    public void xmlDecl(String version, String encoding, String standalone, Augmentations augs)        throws XNIException {        // call handlers        if (fDocumentHandler != null) {            fDocumentHandler.xmlDecl(version, encoding, standalone, augs);        }    } // xmlDecl(String,String,String)    /**     * Notifies of the presence of the DOCTYPE line in the document.     *     * @param rootElement The name of the root element.     * @param publicId    The public identifier if an external DTD or null     *                    if the external DTD is specified using SYSTEM.     * @param systemId    The system identifier if an external DTD, null     *                    otherwise.     * @param augs     Additional information that may include infoset augmentations     *     * @throws XNIException Thrown by handler to signal an error.     */    public void doctypeDecl(        String rootElement,        String publicId,        String systemId,        Augmentations augs)        throws XNIException {        // call handlers        if (fDocumentHandler != null) {            fDocumentHandler.doctypeDecl(rootElement, publicId, systemId, augs);        }    } // doctypeDecl(String,String,String)    /**     * The start of an element.     *     * @param element    The name of the element.     * @param attributes The element attributes.     * @param augs     Additional information that may include infoset augmentations     *     * @throws XNIException Thrown by handler to signal an error.     */    public void startElement(QName element, XMLAttributes attributes, Augmentations augs)        throws XNIException {        Augmentations modifiedAugs = handleStartElement(element, attributes, augs);        // call handlers        if (fDocumentHandler != null) {            fDocumentHandler.startElement(element, attributes, modifiedAugs);        }    } // startElement(QName,XMLAttributes, Augmentations)    /**     * An empty element.     *     * @param element    The name of the element.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?