private void serializeElement(GlueElement element, XMLBuffer xmlBuffer) { if (element.isSynthetic()) { for (GlueElement child : element.getChildren()) { serializeElement(child, xmlBuffer); } } else { for (GlueAuxiliary auxiliary : element.getFront()) { serializeAuxiliary(auxiliary, xmlBuffer); } xmlBuffer.beginElement(element.getTagName()); serializeAttributes(element, xmlBuffer); if (element.getChildren().isEmpty()) { for (GlueAuxiliary auxiliary : element.getContent()) { serializeAuxiliary(auxiliary, xmlBuffer); } } else { for (GlueElement child : element.getChildren()) { serializeElement(child, xmlBuffer); } for (GlueAuxiliary auxiliary : element.getTail()) { serializeAuxiliary(auxiliary, xmlBuffer); } } xmlBuffer.endElement(); } }
private void serializeAttributes(GlueElement element, XMLBuffer xmlBuffer) { final Map<String, String> attributes = element.getAttributes(); final List<Map.Entry<String, String>> attrNames = new ArrayList<>(); for (Map.Entry<String, String> entry : attributes.entrySet()) { attrNames.add(new SimpleEntry<>(entry.getKey(), entry.getValue())); } Collections.sort(attrNames, attrComparator); for (Map.Entry<String, String> e : attrNames) { xmlBuffer.addAttribute(e.getKey(), e.getValue()); } }