List of usage examples for com.liferay.portal.kernel.xml Element formattedString
@Override public String formattedString() throws IOException;
From source file:com.liferay.dynamic.data.mapping.internal.util.DDMXMLImpl.java
License:Open Source License
protected void validate(Document document) throws Exception { XPath xPathSelector = _saxReader.createXPath("//dynamic-element"); List<Node> nodes = xPathSelector.selectNodes(document); Set<String> elementNames = new HashSet<>(); for (Node node : nodes) { Element element = (Element) node; String name = StringUtil.toLowerCase(element.attributeValue("name")); if (Validator.isNull(name)) { throw new StructureDefinitionException( "Element must have a name attribute " + element.formattedString()); }//from w w w . j a v a2 s .c om if (name.startsWith(DDMStructureConstants.XSD_NAME_RESERVED)) { throw new StructureDefinitionException("Element name " + name + " is reserved"); } if (elementNames.contains(name)) { throw new StructureDuplicateElementException("Element with name " + name + " already exists"); } elementNames.add(name); } }
From source file:com.liferay.util.ant.Java2WsddTask.java
License:Open Source License
private static String _format(String content) throws Exception { content = HtmlUtil.stripComments(content); Document document = SAXReaderUtil.read(content); Element rootElement = document.getRootElement(); Element serviceElement = rootElement.element("service"); Map<String, Element> arrayMappingElements = new TreeMap<String, Element>(); Map<String, Element> typeMappingElements = new TreeMap<String, Element>(); Map<String, Element> operationElements = new TreeMap<String, Element>(); Map<String, Element> parameterElements = new TreeMap<String, Element>(); for (Element element : serviceElement.elements()) { String elementName = element.getName(); if (elementName.equals("arrayMapping")) { element.detach();/*from w w w . jav a 2 s . co m*/ arrayMappingElements.put(element.formattedString(), element); } else if (elementName.equals("operation")) { element.detach(); StringBundler sb = new StringBundler(); String name = element.attributeValue("name"); sb.append(name); sb.append("_METHOD_"); for (Element parameterElement : element.elements("parameter")) { String type = parameterElement.attributeValue("type"); sb.append(type); sb.append("_PARAMETER_"); } operationElements.put(sb.toString(), element); } else if (elementName.equals("parameter")) { element.detach(); String name = element.attributeValue("name"); if (name.equals("allowedMethods")) { Attribute valueAttribute = element.attribute("value"); String[] values = StringUtil.split(valueAttribute.getValue(), CharPool.SPACE); Arrays.sort(values); valueAttribute.setValue(StringUtil.merge(values, StringPool.SPACE)); } else if (name.equals("schemaUnqualified")) { Attribute valueAttribute = element.attribute("value"); String[] values = StringUtil.split(valueAttribute.getValue()); Arrays.sort(values); valueAttribute.setValue(StringUtil.merge(values)); } parameterElements.put(name, element); } else if (elementName.equals("typeMapping")) { element.detach(); typeMappingElements.put(element.formattedString(), element); } } _addElements(serviceElement, arrayMappingElements); _addElements(serviceElement, typeMappingElements); _addElements(serviceElement, operationElements); _addElements(serviceElement, parameterElements); content = StringUtil.replace(document.formattedString(), "\"/>", "\" />"); return content; }