OFD文件本质上是个压缩包
文档结构
解压缩之后,可以发现其中的文件组织结构如下:
- OFD.xml:主入口文件,有且只有一个,文件名不可修改
- Doc_N文件夹
- Document.xml:文档根节点
- PublicRes.xml:文档公共资源索引
- DocumentRes.xml:文档自身资源索引
- Signs文件夹:数字签名存储目录
- Signatures.xml:签名列表文件
- Sign_N文件夹:签名/签章
- seal.esl:电子印章文件
- Signature.xml:签名/签章描述文件
- SignedValue.dat:签名值文件
- Pages文件夹
- Page_N文件夹
- Content.xml:页内容描述
- PageRes.xml:页资源描述
- Res文件夹:页资源文件夹
- Image_M.png:资源文件
- Page_N文件夹
- CustomTag文件夹:自定义标引目录
- CustomTag.xml:自定义标引描述
命名空间
OFD标准中XML文档使用的命名空间为http://www.ofdspec.org/2016,且要这个命名空间的表示要为ofd。XML文档中的元素节点应使用命名空间标识,元素属性不使用明明空间标识。下面是一个只有根元素和一个元素节点的OFD文档的示例:
<?xml version="1.0" encoding="utf-8"?>
<ofd:OFD
xmlns:ofd="http://www.ofdspec.org/2016"
DocType="OFD">
<ofd:DocBody>
</ofd:DocBody>
</ofd:OFD>
数据类型
OFD标准中有6中自定义数据类型:
ST_Loc
:文件路径,区分大小写- “/“代表根节点,”/Pages/P1/Content.xml”
- “.“代表当前路径,”./Res/Book1.jpg”
- “…“代表父路径,”…/Pages/P1/Res.xml”
- 无起始符代表当前路径,“Pages/P1/Res.xml”
ST_Array
:数组,以空格来分割元素。元素可以是除ST_Loc、ST_Array外的数据类型,不可嵌套;“1 2.0 5.0”ST_ID
:标识,无符号整数,在文档内必须唯一。0表示无标识;“1000”ST_RefID
:标识引用,无符号整数,此标识应为文档内以定义的标识;”1000“ST_Pos
:点坐标,以空格分隔,前者为x值,后置位y值,可以是整数或者浮点数;“0 0”ST_Box
:矩形区域,以空格分隔,前两个值代表了该举行的左上角的坐标,后两个值依次表示该举行的宽和高,可以是整数或者浮点数,后两个值应该大于0;“10 10 50 50”