Example usage for org.dom4j Namespace Namespace

List of usage examples for org.dom4j Namespace Namespace

Introduction

In this page you can find the example usage for org.dom4j Namespace Namespace.

Prototype

public Namespace(String prefix, String uri) 

Source Link

Document

DOCUMENT ME!

Usage

From source file:net.sf.saxon.option.dom4j.DOM4JWriter.java

License:Mozilla Public License

public void attribute(NodeName nameCode, SimpleType typeCode, CharSequence value, int locationId,
        int properties) throws XPathException {
    String local = nameCode.getLocalPart();
    String uri = nameCode.getURI();
    String prefix = nameCode.getPrefix();
    Namespace ns = new Namespace(prefix, uri);
    Attribute att = new DefaultAttribute(local, value.toString(), ns);
    ((Element) ancestors.peek()).add(att);
}

From source file:org.apache.openmeetings.servlet.outputhandler.LangExport.java

License:Apache License

public static Element createRoot(Document document) {
    Element root = document.addElement("language");
    root.add(new Namespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"));
    root.add(new Namespace("noNamespaceSchemaLocation", "language.xsd"));
    return root;//  ww w.j  a  v  a  2s .  co  m
}

From source file:org.apache.openmeetings.util.LangExport.java

License:Apache License

public static Element createRoot(Document document) {
    Element root = document.addElement("language");
    Namespace xsi = new Namespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
    root.add(xsi);/*from  w w w.  j av a 2s .c o  m*/
    root.add(new FlyweightAttribute("noNamespaceSchemaLocation", "language.xsd", xsi));
    return root;
}

From source file:org.apereo.portal.layout.dlm.RDBMDistributedLayoutStore.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
@Transactional/*from   w  w  w.j  av a  2s  . c  o  m*/
public void importLayout(org.dom4j.Element layout) {
    if (layout.getNamespaceForPrefix("dlm") == null) {
        layout.add(new Namespace("dlm", Constants.NS_URI));
    }

    //Remove comments from the DOM they break import
    final List<org.dom4j.Node> comments = layout.selectNodes("//comment()");
    for (final org.dom4j.Node comment : comments) {
        comment.detach();
    }

    //Get a ref to the prefs element and then remove it from the layout
    final org.dom4j.Node preferencesElement = layout.selectSingleNode("preferences");
    if (preferencesElement != null) {
        preferencesElement.getParent().remove(preferencesElement);
    }

    final String ownerUsername = layout.valueOf("@username");

    //Get a ref to the profile element and then remove it from the layout
    final org.dom4j.Node profileElement = layout.selectSingleNode("profile");
    if (profileElement != null) {
        profileElement.getParent().remove(profileElement);

        final org.dom4j.Document profileDocument = new org.dom4j.DocumentFactory().createDocument();
        profileDocument.setRootElement((org.dom4j.Element) profileElement);
        profileDocument.setName(ownerUsername + ".profile");

        final DocumentSource profileSource = new DocumentSource(profileElement);
        this.portalDataHandlerService.importData(profileSource);
    }

    final IPerson person = new PersonImpl();
    person.setUserName(ownerUsername);

    int ownerId;
    try {
        //Can't just pass true for create here, if the user actually exists the create flag also updates the user data
        ownerId = this.userIdentityStore.getPortalUID(person);
    } catch (final AuthorizationException t) {
        if (this.errorOnMissingUser) {
            throw new RuntimeException("Unrecognized user " + person.getUserName()
                    + "; you must import users before their layouts or set org.apereo.portal.io.layout.errorOnMissingUser to false.",
                    t);
        }

        //Create the missing user
        ownerId = this.userIdentityStore.getPortalUID(person, true);
    }

    if (ownerId == -1) {
        throw new RuntimeException("Unrecognized user " + person.getUserName()
                + "; you must import users before their layouts or set org.apereo.portal.io.layout.errorOnMissingUser to false.");
    }
    person.setID(ownerId);

    IUserProfile profile = null;
    try {
        person.setSecurityContext(new BrokenSecurityContext());
        profile = this.getUserProfileByFname(person, "default");
    } catch (final Throwable t) {
        throw new RuntimeException("Failed to load profile for " + person.getUserName()
                + "; This user must have a profile for import to continue.", t);
    }

    // (6) Add database Ids & (5) Add dlm:plfID ...
    int nextId = 1;
    for (final Iterator<org.dom4j.Element> it = (Iterator<org.dom4j.Element>) layout
            .selectNodes("folder | dlm:* | channel").iterator(); it.hasNext();) {
        nextId = this.addIdAttributesIfNecessary(it.next(), nextId);
    }
    // Now update UP_USER...
    this.jdbcOperations.update("UPDATE up_user SET next_struct_id = ? WHERE user_id = ?", nextId,
            person.getID());

    // (4) Convert external DLM pathrefs to internal form (noderefs)...
    for (final Iterator<org.dom4j.Attribute> itr = (Iterator<org.dom4j.Attribute>) layout
            .selectNodes("//@dlm:origin").iterator(); itr.hasNext();) {
        final org.dom4j.Attribute a = itr.next();
        final Noderef dlmNoderef = nodeReferenceFactory.getNoderefFromPathref(ownerUsername, a.getValue(), null,
                true, layout);
        if (dlmNoderef != null) {
            // Change the value only if we have a valid pathref...
            a.setValue(dlmNoderef.toString());
            // For dlm:origin only, also use the noderef as the ID attribute...
            a.getParent().addAttribute("ID", dlmNoderef.toString());
        } else {
            // At least insure the value is between 1 and 35 characters
            a.setValue(BAD_PATHREF_MESSAGE);
        }
    }
    for (final Iterator<org.dom4j.Attribute> itr = (Iterator<org.dom4j.Attribute>) layout
            .selectNodes("//@dlm:target").iterator(); itr.hasNext();) {
        final org.dom4j.Attribute a = itr.next();
        final Noderef dlmNoderef = nodeReferenceFactory.getNoderefFromPathref(ownerUsername, a.getValue(), null,
                true, layout);
        // Put in the correct value, or at least insure the value is between 1 and 35 characters
        a.setValue(dlmNoderef != null ? dlmNoderef.toString() : BAD_PATHREF_MESSAGE);
    }
    for (final Iterator<org.dom4j.Attribute> names = (Iterator<org.dom4j.Attribute>) layout
            .selectNodes("//dlm:*/@name").iterator(); names.hasNext();) {
        final org.dom4j.Attribute a = names.next();
        final String value = a.getValue().trim();
        if (!VALID_PATHREF_PATTERN.matcher(value).matches()) {
            /* Don't send it to getDlmNoderef if we know in advance it's not
             * going to work;  saves annoying/misleading log messages and
             * possibly some processing.  NOTE this is _only_ a problem with
             * the name attribute of some dlm:* elements, which seems to go
             * unused intentionally in some circumstances
             */
            continue;
        }
        final org.dom4j.Attribute fname = a.getParent().attribute("fname");
        Noderef dlmNoderef = null;
        if (fname != null) {
            dlmNoderef = nodeReferenceFactory.getNoderefFromPathref(ownerUsername, value, fname.getValue(),
                    false, layout);
            // Remove the fname attribute now that we're done w/ it...
            fname.getParent().remove(fname);
        } else {
            dlmNoderef = nodeReferenceFactory.getNoderefFromPathref(ownerUsername, value, null, true, layout);
        }
        // Put in the correct value, or at least insure the value is between 1 and 35 characters
        a.setValue(dlmNoderef != null ? dlmNoderef.toString() : BAD_PATHREF_MESSAGE);
    }

    // (3) Restore chanID attributes on <channel> elements...
    for (final Iterator<org.dom4j.Element> it = (Iterator<org.dom4j.Element>) layout.selectNodes("//channel")
            .iterator(); it.hasNext();) {
        final org.dom4j.Element c = it.next();
        final String fname = c.valueOf("@fname");
        final IPortletDefinition cd = this.portletDefinitionRegistry.getPortletDefinitionByFname(fname);
        if (cd == null) {
            final String msg = "No portlet with fname=" + fname + " exists referenced by node "
                    + c.valueOf("@ID") + " from layout for " + ownerUsername;
            if (errorOnMissingPortlet) {
                throw new IllegalArgumentException(msg);
            } else {
                logger.warn(msg);
                //Remove the bad channel node
                c.getParent().remove(c);
            }
        } else {
            c.addAttribute("chanID", String.valueOf(cd.getPortletDefinitionId().getStringId()));
        }
    }

    // (2) Restore locale info...
    // (This step doesn't appear to be needed for imports)

    // (1) Process structure & theme attributes...
    Document layoutDom = null;
    try {

        final int structureStylesheetId = profile.getStructureStylesheetId();
        this.loadStylesheetUserPreferencesAttributes(person, profile, layout, structureStylesheetId,
                "structure");

        final int themeStylesheetId = profile.getThemeStylesheetId();
        this.loadStylesheetUserPreferencesAttributes(person, profile, layout, themeStylesheetId, "theme");

        // From this point forward we need the user's PLF set as DLM expects it...
        for (final Iterator<org.dom4j.Text> it = (Iterator<org.dom4j.Text>) layout
                .selectNodes("descendant::text()").iterator(); it.hasNext();) {
            // How many years have we used Java & XML, and this still isn't easy?
            final org.dom4j.Text txt = it.next();
            if (txt.getText().trim().length() == 0) {
                txt.getParent().remove(txt);
            }
        }

        final org.dom4j.Element copy = layout.createCopy();
        final org.dom4j.Document doc = this.fac.createDocument(copy);
        doc.normalize();
        layoutDom = this.writer.get().write(doc);
        person.setAttribute(Constants.PLF, layoutDom);

    } catch (final Throwable t) {
        throw new RuntimeException("Unable to set UserPreferences for user:  " + person.getUserName(), t);
    }

    // Finally store the layout...
    try {
        this.setUserLayout(person, profile, layoutDom, true, true);
    } catch (final Throwable t) {
        final String msg = "Unable to persist layout for user:  " + ownerUsername;
        throw new RuntimeException(msg, t);
    }

    if (preferencesElement != null) {
        final int ownerUserId = this.userIdentityStore.getPortalUserId(ownerUsername);
        //TODO this assumes a single layout, when multi-layout support exists portlet entities will need to be re-worked to allow for a layout id to be associated with the entity

        //track which entities from the user's pre-existing set are touched (all non-touched entities will be removed)
        final Set<IPortletEntity> oldPortletEntities = new LinkedHashSet<IPortletEntity>(
                this.portletEntityDao.getPortletEntitiesForUser(ownerUserId));

        final List<org.dom4j.Element> entries = preferencesElement.selectNodes("entry");
        for (final org.dom4j.Element entry : entries) {
            final String dlmPathRef = entry.attributeValue("entity");
            final String fname = entry.attributeValue("channel");
            final String prefName = entry.attributeValue("name");

            final Noderef dlmNoderef = nodeReferenceFactory.getNoderefFromPathref(person.getUserName(),
                    dlmPathRef, fname, false, layout);

            if (dlmNoderef != null && fname != null) {
                final IPortletEntity portletEntity = this.getPortletEntity(fname, dlmNoderef.toString(),
                        ownerUserId);
                oldPortletEntities.remove(portletEntity);

                final List<IPortletPreference> portletPreferences = portletEntity.getPortletPreferences();

                final List<org.dom4j.Element> valueElements = entry.selectNodes("value");
                final List<String> values = new ArrayList<String>(valueElements.size());
                for (final org.dom4j.Element valueElement : valueElements) {
                    values.add(valueElement.getText());
                }

                portletPreferences.add(
                        new PortletPreferenceImpl(prefName, false, values.toArray(new String[values.size()])));

                this.portletEntityDao.updatePortletEntity(portletEntity);
            }
        }

        //Delete all portlet preferences for entities that were not imported
        for (final IPortletEntity portletEntity : oldPortletEntities) {
            portletEntity.setPortletPreferences(null);

            if (portletEntityRegistry.shouldBePersisted(portletEntity)) {
                this.portletEntityDao.updatePortletEntity(portletEntity);
            } else {
                this.portletEntityDao.deletePortletEntity(portletEntity);
            }
        }
    }
}

From source file:org.b5chat.crossfire.core.net.sasl.SASLAuthentication.java

License:Open Source License

public static Element getSASLMechanismsElement(ISession session) {
    if (!(session instanceof IClientSession)) {
        return null;
    }/*from ww w .jav a 2 s . c  om*/

    Element mechs = DocumentHelper
            .createElement(new QName("mechanisms", new Namespace("", "urn:ietf:params:xml:ns:xmpp-sasl")));
    for (String mech : getSupportedMechanisms()) {
        Element mechanism = mechs.addElement("mechanism");
        mechanism.setText(mech);
    }
    return mechs;
}

From source file:org.codehaus.cargo.container.weblogic.WebLogic9x10x103x12xConfigXmlInstalledLocalDeployer.java

License:Apache License

/**
 * create the config.xml element representing the Deployable. In WebLogic 9x, this is the
 * element app-deployment./* www  .ja  va2 s  .c om*/
 * 
 * @param deployable to configure
 * @param domain root element of the config.xml file
 * @return app-deployment element
 */
protected Element createElementForDeployableInDomain(Deployable deployable, Element domain) {
    QName appDeploymentQName = new QName("app-deployment", new Namespace("", namespace));
    Element appDeployment = domain.addElement(appDeploymentQName);
    String id = createIdForDeployable(deployable);
    // the name element is a unique identifier in the config.xml file. that's why this is being
    // named id as opposed to name
    Element appId = appDeployment.addElement("name");
    appId.setText(id);
    Element target = appDeployment.addElement("target");
    target.setText(getServerName());
    Element sourcePath = appDeployment.addElement("source-path");
    sourcePath.setText(getAbsolutePath(deployable));
    return appDeployment;
}

From source file:org.codehaus.cargo.container.weblogic.WebLogic9xConfigXmlInstalledLocalDeployer.java

License:Apache License

/**
 * create the config.xml element representing the Deployable. In WebLogic 9x, this is the
 * element app-deployment.//  w w w  .j av  a 2s .c  o  m
 * 
 * @param deployable to configure
 * @param domain root element of the config.xml file
 * @return app-deployment element
 */
protected Element createElementForDeployableInDomain(Deployable deployable, Element domain) {
    QName appDeploymentQName = new QName("app-deployment",
            new Namespace("", "http://www.bea.com/ns/weblogic/920/domain"));
    Element appDeployment = domain.addElement(appDeploymentQName);
    String id = createIdForDeployable(deployable);
    // the name element is a unique identifier in the config.xml file. that's why this is being
    // named id as opposed to name
    Element appId = appDeployment.addElement("name");
    appId.setText(id);
    Element target = appDeployment.addElement("target");
    target.setText(getServerName());
    Element sourcePath = appDeployment.addElement("source-path");
    sourcePath.setText(getAbsolutePath(deployable));
    return appDeployment;
}

From source file:org.collectionspace.chain.csp.persistence.services.XmlJsonConversion.java

License:Educational Community License

public static Document getXMLRelationship(Element[] listItems) {
    Document doc = DocumentFactory.getInstance().createDocument();
    Element root = doc.addElement(new QName("relations-common-list",
            new Namespace("ns3", "http://collectionspace.org/services/relation")));
    root.addNamespace("ns2", "http://collectionspace.org/services/jaxb");
    //<ns3:relations-common-list xmlns:ns3="http://collectionspace.org/services/relation" xmlns:ns2="http://collectionspace.org/services/jaxb">

    if (listItems != null) {
        for (Element bitdoc : listItems) {
            root.add(bitdoc);/*www  .  ja v a2  s .c  o m*/
        }
    }

    return doc;

}

From source file:org.collectionspace.chain.csp.persistence.services.XmlJsonConversion.java

License:Educational Community License

public static Document convertToXml(Record r, JSONObject in, String section, String permtype,
        Boolean useInstance) throws JSONException, UnderlyingStorageException {
    if (!useInstance) {
        return convertToXml(r, in, section, permtype);
    }/*from w w w.  ja  v a 2  s  . com*/

    Document doc = DocumentFactory.getInstance().createDocument();
    String[] parts = r.getServicesRecordPath(section).split(":", 2);
    if (useInstance) {
        parts = r.getServicesInstancesPath(section).split(":", 2);
    }
    String[] rootel = parts[1].split(",");
    Element root = doc.addElement(new QName(rootel[1], new Namespace("ns2", rootel[0])));

    Element element = root.addElement("displayName");
    element.addText(in.getString("displayName"));
    Element element2 = root.addElement("shortIdentifier");
    element2.addText(in.getString("shortIdentifier"));
    if (in.has("vocabType")) {
        Element element3 = root.addElement("vocabType");
        element3.addText(in.getString("vocabType"));
    }

    return doc;
    //yes I know hardcode is bad - but I need this out of the door today
    /*
    <ns2:personauthorities_common xmlns:ns2="http://collectionspace.org/services/person">
    <displayName>PAHMA Person Authority</displayName>
    <vocabType>PersonAuthority</vocabType>
    <shortIdentifier>pamha</shortIdentifier>
    </ns2:personauthorities_common>
     */

}

From source file:org.collectionspace.chain.csp.persistence.services.XmlJsonConversion.java

License:Educational Community License

public static Document convertToXml(Record r, JSONObject in, String section, String operation)
        throws JSONException, UnderlyingStorageException {
    Document doc = DocumentFactory.getInstance().createDocument();
    try {//from w  w w  .j  a v a 2s . c om
        String path = r.getServicesRecordPath(section);
        if (path != null) {
            String[] parts = path.split(":", 2);
            String[] rootel = parts[1].split(",");
            Element root = doc.addElement(new QName(rootel[1], new Namespace("ns2", rootel[0])));
            if (r.getAllServiceFieldTopLevel(operation, section).length > 0) {
                for (FieldSet f : r.getAllServiceFieldTopLevel(operation, section)) {
                    addFieldSetToXml(root, f, in, section, operation);
                }
                return doc;
            }
        } else {
            // Revert to DEBUG after v4.0 testing
            log.warn(String.format("Record %s lacks expected section %s", r.getRecordName(), section));
        }
    } catch (Exception ex) {
        log.debug("Error in XmlJsonConversion.convertToXml", ex);
        throw ex;
    }
    return null;
}