private static @Nullable DomInvocationHandler createCustomHandler(XmlTag tag,
                                                                    DomInvocationHandler parent,
                                                                    String localName,
                                                                    DomGenericInfoEx info) {
    List<? extends CustomDomChildrenDescription> customs = info.getCustomNameChildrenDescription();
    if (customs.isEmpty()) return null;

    XmlFile file = parent.getFile();
    for (DomFixedChildDescription description : info.getFixedChildrenDescriptions()) {
      XmlName xmlName = description.getXmlName();
      if (localName.equals(xmlName.getLocalName()) && DomImplUtil.isNameSuitable(xmlName, tag, parent, file)) {
        return null;
      }
    }
    for (CustomDomChildrenDescription description : customs) {
      if (description.getTagNameDescriptor() != null) {
        AbstractCollectionChildDescription desc = (AbstractCollectionChildDescription)description;
        Type type = description.getType();
        return new CollectionElementInvocationHandler(type, tag, desc, parent, null);
      }
    }

    return null;
  }
private static @Nullable DomInvocationHandler createCustomHandler(XmlTag tag,
                                                                    DomInvocationHandler parent,
                                                                    String localName,
                                                                    DomGenericInfoEx info)