@Test
public void buildAndParse() throws Exception {
StandardExtensionElement.Builder builder = StandardExtensionElement.builder("foo", "ns1");
builder.addAttribute("attr1", "attr1-value");
builder.addElement(StandardExtensionElement.builder("bar", "ns2").addAttribute("attr2", "attr2-value").build());
builder.addElement("another-element", "another-element-text");
final String elementString = builder.build().toXML(null).toString();
StandardExtensionElement parsedElement = StandardExtensionElementProvider.INSTANCE.parse(getParserFor(elementString));
assertEquals("foo", parsedElement.getElementName());
assertEquals("ns1", parsedElement.getNamespace());
assertEquals("attr1-value", parsedElement.getAttributeValue("attr1"));
StandardExtensionElement barNs2Element = parsedElement.getFirstElement("bar", "ns2");
assertEquals("bar", barNs2Element.getElementName());
assertEquals("ns2", barNs2Element.getNamespace());
assertEquals("attr2-value", barNs2Element.getAttributeValue("attr2"));
assertEquals("another-element-text", parsedElement.getFirstElement("another-element").getText());
String parsedElementString = parsedElement.toXML(null).toString();
assertEquals(elementString, parsedElementString);
}