loadExternalDtd method

Future<void> loadExternalDtd()

Attempts to load all external DTD references contained within any nested XmlDoctypes and XmlEntitys, load the pages they reference, and parse the DTD elements contained within.

Implementation

Future<void> loadExternalDtd() async {
  if (children.isEmpty) return;

  for (var i = 0; i < children.length; i++) {
    final child = children[i];

    if (child is XmlConditional) {
      await child.loadExternalDtd();
    } else if (child is XmlDoctype) {
      final externalDtd = await child.loadExternalDtd();
      if (externalDtd != null) children[i] = externalDtd;
    } else if (child is XmlElement) {
      await child.loadExternalDtd();
    } else if (child is XmlEntity) {
      final externalEntities = await child.loadExternalEntities();
      if (externalEntities != null) children[i] = externalEntities;
    }
  }

  return;
}