Class NGCCRuntimeEx

    • Field Detail

      • currentSchema

        public SchemaImpl currentSchema
        The schema currently being parsed.
      • finalDefault

        public int finalDefault
        The @finalDefault value of the current schema.
      • blockDefault

        public int blockDefault
        The @blockDefault value of the current schema.
      • elementFormDefault

        public boolean elementFormDefault
        The @elementFormDefault value of the current schema. True if local elements are qualified by default.
      • attributeFormDefault

        public boolean attributeFormDefault
        The @attributeFormDefault value of the current schema. True if local attributes are qualified by default.
      • chameleonMode

        public boolean chameleonMode
        True if the current schema is in a chameleon mode. This changes the way QNames are interpreted. Life is very miserable with XML Schema, as you see.
    • Method Detail

      • ignorableDuplicateComponent

        public static boolean ignorableDuplicateComponent​(XSDeclaration c)
      • hasAlreadyBeenRead

        public boolean hasAlreadyBeenRead()
        Called when a new document is being parsed and checks if the document has already been parsed before.

        Used to avoid recursive inclusion. Note that the same document will be parsed multiple times if they are for different target namespaces.

        Document Graph Model

        The challenge we are facing here is that you have a graph of documents that reference each other. Each document has an unique URI to identify themselves, and references are done by using those. The graph may contain cycles.

        Our goal here is to parse all the documents in the graph, without parsing the same document twice. This method implements this check.

        One complication is the chameleon schema; a document can be parsed multiple times if they are under different target namespaces.

        Also, note that when you resolve relative URIs in the @schemaLocation, their base URI is *NOT* the URI of the document.

        Returns:
        true if the document has already been processed and thus needs to be skipped.
      • parseEntity

        public void parseEntity​(InputSource source,
                                boolean includeMode,
                                String expectedNamespace,
                                Locator importLocation)
                         throws SAXException
        Parses the specified entity.
        Parameters:
        importLocation - The source location of the import/include statement. Used for reporting errors.
        Throws:
        SAXException
      • createAnnotationParser

        public AnnotationParser createAnnotationParser()
        Creates a new instance of annotation parser.
        Returns:
        Annotation parser
      • getAnnotationContextElementName

        public String getAnnotationContextElementName()
        Gets the element name that contains the annotation element.This method works correctly only when called by the annotation handler.
        Returns:
        Element name
      • copyLocator

        public Locator copyLocator()
        Creates a copy of the current locator object.
        Returns:
        Locator copy
      • onEnterElementConsumed

        public void onEnterElementConsumed​(String uri,
                                           String localName,
                                           String qname,
                                           Attributes atts)
                                    throws SAXException
        Description copied from class: NGCCRuntime
        Called by the generated handler code when an enter element event is consumed.

        Pushes a new attribute set.

        Note that attributes are NOT pushed at the startElement method, because the processing of the enterElement event can trigger other attribute events and etc.

        This method will be called from one of handlers when it truely consumes the enterElement event.

        Overrides:
        onEnterElementConsumed in class NGCCRuntime
        Throws:
        SAXException
      • createValidationContext

        public ValidationContext createValidationContext()
        Returns an immutable snapshot of the current context.
        Returns:
        Snapshot of current context
      • parseUName

        public UName parseUName​(String qname)
                         throws SAXException
        Parses UName under the given context.
        Parameters:
        qname - Attribute name.
        Returns:
        New UName instance based on attribute name.
        Throws:
        SAXException
      • collapse

        public String collapse​(String text)
        Utility function for collapsing the namespaces inside qname declarations and 'name' attribute values that should contain the qname values
        Parameters:
        text - String where whitespaces should be collapsed
        Returns:
        String with whitespaces collapsed
      • parseBoolean

        public boolean parseBoolean​(String v)