{
    "content": [
        {
            "type": "text",
            "text": "# Font::TTF::XMLparse (perldoc)\n\n## NAME\n\nFont::TTF::XMLparse - provides support for XML parsing. Requires Expat module XML::Parser::Expat\n\n## SYNOPSIS\n\nuse Font::TTF::Font;\nuse Font::TTF::XMLparse;\n$f = Font::TTF::Font->new;\nreadxml($f, $ARGV[0]);\n$f->out($ARGV[1]);\n\n## DESCRIPTION\n\nThis module contains the support routines for parsing XML and generating the Truetype font\nstructures as a result. The module has been separated from the rest of the package in order to\nreduce the dependency that this would bring, of the whole package on XML::Parser. This way,\npeople without the XML::Parser can still use the rest of the package.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **METHODS**\n- **AUTHOR**\n- **LICENSING**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Font::TTF::XMLparse",
        "section": "",
        "mode": "perldoc",
        "summary": "Font::TTF::XMLparse - provides support for XML parsing. Requires Expat module XML::Parser::Expat",
        "synopsis": "use Font::TTF::Font;\nuse Font::TTF::XMLparse;\n$f = Font::TTF::Font->new;\nreadxml($f, $ARGV[0]);\n$f->out($ARGV[1]);",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 57,
                "subsections": []
            },
            {
                "name": "METHODS",
                "lines": 1,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "LICENSING",
                "lines": 5,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Font::TTF::XMLparse - provides support for XML parsing. Requires Expat module XML::Parser::Expat\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "use Font::TTF::Font;\nuse Font::TTF::XMLparse;\n\n$f = Font::TTF::Font->new;\nreadxml($f, $ARGV[0]);\n$f->out($ARGV[1]);\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This module contains the support routines for parsing XML and generating the Truetype font\nstructures as a result. The module has been separated from the rest of the package in order to\nreduce the dependency that this would bring, of the whole package on XML::Parser. This way,\npeople without the XML::Parser can still use the rest of the package.\n\nThe package interacts with another package through the use of a context containing and element\n'receiver' which is an object which can possibly receive one of the following messages:\n\nXMLstart\nThis message is called when an open tag occurs. It is called with the context, tag name and\nthe attributes. The return value has no meaning.\n\nXMLend\nThis messages is called when a close tag occurs. It is called with the context, tag name and\nattributes (held over from when the tag was opened). There are 3 possible return values from\nsuch a message:\n\nundef   This is the default return value indicating that default processing should occur in\nwhich either the current element on the tree, or the text of this element should be\nstored in the parent object.\n\n$context\nThis magic value marks that the element should be deleted from the parent. Nothing\nis stored in the parent. (This rather than '' is used to allow 0 returns.)\n\nanything\nAnything else is taken as the element content to be stored in the parent.\n\nIn addition, the context hash passed to these messages contains the following keys:\n\nxml This is the expat xml object. The context is also available as $context->{'xml'}{'\nmycontext'}. But that is a long winded way of not saying much!\n\nfont\nThis is the base object that was passed in for XML parsing.\n\nreceiver\nThis holds the current receiver of parsing events. It may be set in associated\napplication to adjust which objects should receive messages when. It is also stored in\nthe parsing stack to ensure that where an object changes it during XMLstart, that that\nsame object that received XMLstart will receive the corresponding XMLend\n\nstack\nThis is the parsing stack, used internally to hold the current receiver and attributes\nfor each element open, as a complete hierarchy back to the root element.\n\ntree\nThis element contains the storage tree corresponding to the parent of each element in\nthe stack. The default action is to push undef onto this stack during XMLstart and then\nto resolve this, either in the associated application (by changing\n$context->{'tree'}[-1]) or during XMLend of a child element, by which time we know\nwhether we are dealing with an array or a hash or what.\n\ntext\nCharacter processing is to insert all the characters into the text element of the\ncontext for available use later.\n",
                "subsections": []
            },
            "METHODS": {
                "content": "",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Martin Hosken <http://scripts.sil.org/FontUtils>.\n",
                "subsections": []
            },
            "LICENSING": {
                "content": "Copyright (c) 1998-2016, SIL International (http://www.sil.org)\n\nThis module is released under the terms of the Artistic License 2.0. For details, see the full\ntext of the license in the file LICENSE.\n",
                "subsections": []
            }
        }
    }
}