List of usage examples for org.dom4j Namespace Namespace
public Namespace(String prefix, String uri)
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; }