loadExternalDtd method
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.
In a valid XML document XmlDoctypes and XmlEntitys shouldn't be contained within an element, this method only exists for good measure.
Implementation
Future<void> loadExternalDtd() async {
if (children == null || 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;
}