简单 XML 子集解析器
简单 XML 子集解析器
“GMarkup”解析器用于解析简单的标记格式,该格式是 XML 的子集。这是一种小巧、高效、易于使用的解析器。如果你希望与生成完整 XML 的其他应用程序互操作,不应使用它,并且如果你希望解析不受信任的输入,则不得使用它。但是,它对于应用程序数据文件、配置文件等特别有用,你知道你的应用程序将是唯一一个写入文件 的应用程序。
完整 XML 解析器应当能够解析 GMarkup 使用的子集,因此,如果需要,你以后可以轻松迁移到完整 XML。
GMarkup 无法保证针对所有无效 XML 发出错误信号;解析器可能接受 XML 解析器不会接受的文档。但是,格式正确的 XML 文档(一种较弱的条件,而不是有效的。有关这些术语的定义,请参见 XML 规范。)不被认为是有效的 GMarkup 文档。
对 XML 的简化
与完整 XML 相比的简化包括
- 只允许 UTF-8 编码
- 没有用户定义的 实体
- 处理指令、注释和 doctype 声明被“传递”但不会以任何 方式进行解释
- 没有 DTD 或 验证
标记格式 支持
- 元素
- 属性
- 5 个标准实体:
&
<
>
"
'
- 字符 引用
- 标记为 CDATA 的部分
一个示例解析器
下面是一个标记解析器的示例: markup-example.c