Example usage for javax.xml.stream.events Namespace getValue

List of usage examples for javax.xml.stream.events Namespace getValue

Introduction

In this page you can find the example usage for javax.xml.stream.events Namespace getValue.

Prototype

public String getValue();

Source Link

Document

Gets the normalized value of this attribute

Usage

From source file:com.prowidesoftware.swift.model.mx.XmlEventWriter.java

public void add(final XMLEvent event) throws XMLStreamException {
    if (event != null) {
        log.finest("XmlEventType: " + event.getEventType());
        try {// ww  w .j  a  v  a  2 s  .com
            final int type = event.getEventType();
            switch (type) {
            case XMLEvent.START_DOCUMENT:
                if (this.includeXMLDeclaration) {
                    log.finer(">> START_DOCUMENT");
                    log.finer("START_DOCUMENT XMLEvent " + ToStringBuilder.reflectionToString(event));
                    final String str = "<?xml version=\"1.0\" encoding=\""
                            + ((StartDocument) event).getCharacterEncodingScheme() + "\"?>";
                    out.write(str);
                    logStep(str);
                } else {
                    log.finer("skipping xml declaration");
                }
                break;

            case XMLEvent.START_ELEMENT:
                this.startElementCount++;
                closeStartTagIfNeeded();
                log.finer(">> START_ELEMENT");
                indent.append(' ');
                final StartElement se = event.asStartElement();
                @SuppressWarnings("rawtypes")
                final Iterator it = se.getNamespaces();
                while (it.hasNext()) {
                    log.fine("ns: " + it.next());
                }
                /*---------------------------------------------------------------------------------------
                 * 2015.03 miguel
                 * Cuidado con esta condicion! esto generaba el bug de que no abria el Document anidado dentro del xs:any
                 * Esto es porque este document delayed solo se completa cuando recibe un namespace, pensado como elemento inicial
                 * esto DEEEEBEEEEEEEEEEe corregirse cuando se cambie la serializacion, si se cambia
                 * porque si el document queda dentro de un elemento payload, entonces en count es != 1 y debe revisarse como se identifica el primer 
                 * document y un document anidado.
                 *  
                 */
                if (StringUtils.equals(se.getName().getLocalPart(), this.rootElement)
                        && this.startElementCount == 1) { // 2015.03 miguel: ESTE era el bug de esprow, que aparecian tags anidados de document cerrando que no abria, era porque entraban por aca sin esta condicion de depth count
                    delayedStart = se;
                    log.finer("local part is Document, initializing delayed start, startElementCount="
                            + this.startElementCount);
                } else {
                    final String s = "\n" + indent + "<" + prefix() + se.getName().getLocalPart() /* + ">" */;
                    out.write(s);

                    logStep(s);

                    /* 2014.11 miguel
                     * para soportar atributos en lugar de cerrar aca seteamos un flag para indicar 
                     * que hace falta cerrar el startTag
                     */
                    startTagIncomplete = true;
                    if (se.isNamespace()) {
                        log.fine("is ns in start XMLEvent " + ToStringBuilder.reflectionToString(event));
                    }
                }
                break;

            case XMLEvent.NAMESPACE:
                log.finer(">> NAMESPACE");
                final Namespace ne = (Namespace) event;
                if (delayedStart != null) {
                    final String s = "\n" + indent + "<" + prefix() + delayedStart.getName().getLocalPart()
                            + " " + "xmlns" + (this.prefix != null ? ":" + this.prefix : "") + "=\""
                            + ne.getValue() + "\" xmlns:xsi=\"" + ne.getName() + "\"" + ">";
                    out.write(s);
                    logStep(s);
                    delayedStart = null;
                } else {
                    log.fine("NAMESPACE XMLEvent " + ToStringBuilder.reflectionToString(event));
                }
                break;

            case XMLEvent.CHARACTERS:
                log.finer(">> CHARACTERS");
                closeStartTagIfNeeded();
                final Characters ce = event.asCharacters();
                final char[] arr = ce.getData().toCharArray();
                out.write(escape(arr));
                logStep(ce.getData());
                break;

            case XMLEvent.END_ELEMENT:
                log.finer(">> END_ELEMENT");
                closeStartTagIfNeeded();
                indent.deleteCharAt(0);
                final EndElement ee = event.asEndElement();
                final String str2 = "</" + prefix() + ee.getName().getLocalPart() + ">\n" + indent;
                out.write(str2);
                logStep(str2);
                break;

            case XMLEvent.END_DOCUMENT:
                log.finer(">> END_DOCUMENT");
                closeStartTagIfNeeded();
                /*  2014.10 miguel
                 *  No need to do anything while writing to a string 
                 */
                log.finer("END_DOCUMENT XMLEvent " + ToStringBuilder.reflectionToString(event));
                break;

            case XMLEvent.ATTRIBUTE:
                log.finer(">> ATTRIBUTE");
                final Attribute a = (Attribute) event;
                final String str3 = " " + a.getName() + "=\"" + a.getValue() + "\" ";
                out.write(str3);
                log.fine(ToStringBuilder.reflectionToString(a));
                logStep(str3);
                break;

            default:
                log.info("getEventType " + event.getEventType());
                log.info("PW Unhandled XMLEvent " + ToStringBuilder.reflectionToString(event));
                break;
            }
        } catch (IOException e) {
            log.log(Level.SEVERE, "PW I/O error: " + e);
            log.log(Level.FINER, "PW I/O error: ", e);
            throw new XMLStreamException(e);
        }
    }
}

From source file:org.modeldriven.fuml.xmi.stream.StreamContext.java

private void loadNamespaces(XMLEvent root) {

    List<Namespace> list = new ArrayList<Namespace>();
    Iterator<Namespace> namespaceIter = root.asStartElement().getNamespaces();
    while (namespaceIter.hasNext()) {
        Namespace namespace = namespaceIter.next();
        list.add(namespace);/*from  ww  w . j a  v a  2 s. c om*/

        QName name = namespace.getName();
        if (log.isDebugEnabled())
            log.debug("root namespace: " + name.toString());
        String uri = namespace.getValue();
        if (!XmiConstants.NAMESPACE_PREFIX.equals(name.getPrefix()))
            continue; //not a namespace

        namespaceLocalNameMap.put(name.getLocalPart(), namespace);
        namespaceURIMap.put(namespace.getNamespaceURI(), namespace);

        NamespaceDomain domain = FumlConfiguration.getInstance().findNamespaceDomain(uri);
        if (domain == null) {
            log.debug("could not find domain for namespace '" + uri + "' - mapping only by local name");
            continue;
        }

        Namespace existing = this.namespaceDomainMap.get(domain);
        if (existing != null)
            throw new XmiException("multiple " + domain.value() + " namespaces (" + existing.getNamespaceURI()
                    + ", " + namespace.getNamespaceURI() + ")");

        this.namespaceDomainMap.put(domain, namespace);

    } // while()

    if (getXmiNamespace() == null) {
        throw new XmiException(createNamespaceMessge(NamespaceDomain.XMI));
    }
    if (getUmlNamespace() == null) {
        throw new XmiException(createNamespaceMessge(NamespaceDomain.UML));
    }

    namespaces = new Namespace[list.size()];
    list.toArray(namespaces);
}