286N/A * reserved comment block 286N/A * DO NOT REMOVE OR ALTER! 286N/A * Copyright 1999-2005 The Apache Software Foundation. 286N/A * Licensed under the Apache License, Version 2.0 (the "License"); 286N/A * you may not use this file except in compliance with the License. 286N/A * You may obtain a copy of the License at 286N/A * Unless required by applicable law or agreed to in writing, software 286N/A * distributed under the License is distributed on an "AS IS" BASIS, 286N/A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 286N/A * See the License for the specific language governing permissions and 286N/A * limitations under the License. 286N/A * Objects of this class hold all information pecular to a 286N/A * particular XML Schema document. This is needed because 286N/A * namespace bindings and other settings on the <schema/> element 286N/A * affect the contents of that schema document alone. 286N/A * @author Neil Graham, IBM 286N/A // schema's attributeFormDefault 286N/A // [block | final]Default 286N/A // represents whether this is a chameleon schema (i.e., whether its TNS is natural or comes from without) 286N/A // the root of the schema Document tree itself 286N/A // all namespaces that this document can refer to 286N/A // attribute checker to which we'll return the attributes 286N/A // once we've been told that we're done with them 286N/A // array of objects on the schema's root element. This is null 286N/A // once returnSchemaAttrs has been called. 286N/A // list of annotations contained in the schema document. This is null 286N/A // once removeAnnotations has been called. 286N/A // note that the caller must ensure to call returnSchemaAttrs() 286N/A // to avoid memory leaks! 286N/A // schemaAttrs == null means it's not an <xsd:schema> element 286N/A // throw an exception, but we don't know the document systemId, 286N/A // so we leave that to the caller. 286N/A //set namespace support 286N/A // pass null as the schema document, so that the namespace 286N/A // context is not popped. 286N/A // don't return the attribute array yet! 286N/A //attrChecker.returnAttrArray(schemaAttrs, null); 286N/A * Initialize namespace support by collecting all of the namespace 286N/A * declarations in the root's ancestors. This is necessary to 286N/A * support schemas fragments, i.e. schemas embedded in other 286N/A * Requires the DOM to be created with namespace support enabled. 286N/A // Check if attribute is an ns decl -- requires ns support 286N/A // Declare prefix if not set -- moving upwards 286N/A // backup the current ns support, and use the one passed-in. 286N/A // if no ns support is passed-in, use the one for <schema> element 286N/A // store whether we have reported an error about that this document 286N/A // can't access components from the given namespace 286N/A // check whether we need to report an error against the given uri. 286N/A // if we have reported an error, then we don't need to report again; 286N/A // otherwise we reported the error, and remember this fact. 286N/A // return the attributes on the schema element itself: 286N/A // deallocate the storage set aside for the schema element's 286N/A // adds an annotation to the list of annotations 286N/A // returns the list of annotations conatined in the 286N/A // schema document or null if the document contained no annotations. 286N/A // removes reference to annotation list