protected void newFrame()

in src/main/java/org/apache/servicemix/jbi/jaxp/W3CDOMStreamReader.java [68:112]


    protected void newFrame(ElementFrame frame) {
        Element element = getCurrentElement();
        frame.uris = new ArrayList<String>();
        frame.prefixes = new ArrayList<String>();
        frame.attributes = new ArrayList<Attr>();

        if (context == null) {
            context = new W3CNamespaceContext();
        }

        context.setElement(element);

        NamedNodeMap nodes = element.getAttributes();

        String ePrefix = element.getPrefix();
        if (ePrefix == null) {
            ePrefix = "";
        }

        for (int i = 0; i < nodes.getLength(); i++) {
            Node node = nodes.item(i);
            String prefix = node.getPrefix();
            String localName = node.getLocalName();
            String value = node.getNodeValue();
            String name = node.getNodeName();

            if (prefix == null) {
                prefix = "";
            }

            if (name != null && "xmlns".equals(name)) {
                frame.uris.add(value);
                frame.prefixes.add("");
            } else if (prefix.length() > 0 && "xmlns".equals(prefix)) {
                frame.uris.add(value);
                frame.prefixes.add(localName);
            } else if (name.startsWith("xmlns:")) {
                prefix = name.substring(6);
                frame.uris.add(value);
                frame.prefixes.add(prefix);
            } else {
                frame.attributes.add((Attr)node);
            }
        }
    }