private static Plist internalRead(@NotNull XmlElement root) throws IOException {
    if (root.children.isEmpty()) {
      return Plist.EMPTY_PLIST;
    }

    if (!"plist".equals(root.name)) {
      throw new IOException("Unknown xml format. Root element is '" + root.name + "'");
    }

    XmlElement dictElement = root.getChild("dict");
    return dictElement != null ? (Plist)readDict(dictElement).getValue() : Plist.EMPTY_PLIST;
  }
private static Plist internalRead(@NotNull XmlElement root)