anchor.diff:        n.children.whereType<XmlElement>();
   
     void _parseFnt(XmlDocument xml, Map<int, Image> fontPages, [Archive arc]) {
  -    if (xml.children.length != 1) {
  +    /// Rather than check for children, which will also count whitespace as XmlText,
  +    /// The first child should have the name <font>.
  +    var docElements = _childElements(xml).toList();
  +    if (docElements.length != 1 || docElements[0].name.toString() != 'font') {
         throw ImageException('Invalid font XML');
       }
   
  -    var font = xml.children[0];
  +    var font = docElements[0];
   
       for (var c in _childElements(font)) {
         String name = c.name.toString();
  
positive.code:       throw ImageException('Invalid font archive');
      }
  
      String font_str = String.fromCharCodes(font_file.content as List<int>);
      XmlDocument xml;
  
      if (font_str.startsWith('<font>')) {
        xml = parse(font_str);
        if (xml == null) {
          throw ImageException('Invalid font XML');
  
negative.code:     Map<int, Image> fontPages = {0: page};
  
      XmlDocument doc;
      fnt = fnt.trimLeft();
  
      if (fnt.startsWith('<?xml') || fnt.startsWith('<font>')) {
        doc = parse(fnt);
        if (doc == null) {
          throw ImageException('Invalid font XML');
  