private Map<String, PersistentResourceDefinition> getChildrenMap() {
   Map<String, PersistentResourceDefinition> res = new HashMap<>();
   for (PersistentResourceDefinition child : getChildren()) {
     if (child.getXmlWrapperElement() != null) {
       res.put(child.getXmlWrapperElement(), child);
     } else {
       res.put(child.getXmlElementName(), child);
     }
   }
   return res;
 }
 public void parseChildren(
     final XMLExtendedStreamReader reader, PathAddress parentAddress, List<ModelNode> list)
     throws XMLStreamException {
   if (getChildren().size() == 0) {
     ParseUtils.requireNoContent(reader);
   } else {
     Map<String, PersistentResourceDefinition> children = getChildrenMap();
     while (reader.hasNext() && reader.nextTag() != XMLStreamConstants.END_ELEMENT) {
       PersistentResourceDefinition child = children.get(reader.getLocalName());
       if (child != null) {
         child.parse(reader, parentAddress, list);
       } else {
         throw ParseUtils.unexpectedElement(reader);
       }
     }
   }
 }
 public void persistChildren(XMLExtendedStreamWriter writer, ModelNode model)
     throws XMLStreamException {
   for (PersistentResourceDefinition child : getChildren()) {
     child.persist(writer, model);
   }
 }