void () { registerDomExtender(FixedDomExtender.class); final MyElement myElement = createElement("<a attr=\"xxx\"><xxx>zzz</xxx><yyy attr=\"foo\"/><yyy attr=\"bar\"/></a>", MyElement.class); assertUnorderedCollection(getCustomChildren(myElement), element -> { @NotNull Type type = element.getDomElementType(); assertEquals(GenericDomValue.class, ClassUtil.getRawType(type)); final StringBuffer stringBuffer = ((GenericDomValue<StringBuffer>)element).getValue(); assertEquals("zzz", stringBuffer.toString()); assertInstanceOf(((GenericDomValue<StringBuffer>)element).getConverter(), MyStringBufferConverter.class); assertNotNull(myElement.getGenericInfo().getFixedChildDescription("xxx")); Convert convert = element.getAnnotation(Convert.class); assertNotNull(convert); assertEquals(MyStringBufferConverter.class, convert.value()); assertTrue(convert.soft()); assertNotNull(element.getGenericInfo().getAttributeChildDescription("aaa")); }, element -> { assertEquals("foo", ((MyElement) element).getAttr().getValue()); assertNull(element.getAnnotation(Convert.class)); }, element -> { assertEquals("bar", ((MyElement) element).getAttr().getValue()); assertNull(element.getAnnotation(Convert.class)); }); final DomFixedChildDescription description = myElement.getGenericInfo().getFixedChildDescription("yyy"); assertNotNull(description); assertEquals(2, description.getCount()); }