Astinus 文档格式
Astinus 项目需要支持相对复杂的通用文档格式,要能够描述多种格式化或带有元信息的文档。因此,需要约定一种通用文档格式。
数据格式
基本格式
Astinus文档的基本单位为条目,使用XML格式存储。根元素为 <entry id='uid'/>
。
文档条目的主体为 xpath:entry/content 在正文中允许嵌入元信息节点。
<entry/> 节点下允许加入其它节点,提供map类型的属性映射。
content 的 map 属性通过 xpath:entry/content[@*] 设置。
<entry/> 节点下不写入text属性
<cotent/> 节点下的信息是有序的
允许在 <entry/>内部嵌入<entry/>,或在 xpath:entry/content 内嵌入 <entry/>
数据退化
没有附加属性的情况下,可以没有<entry/>节点,根直接为 <content id='uid'/>
可以以XML字符串格式传递,默认的头是 <?xml version="1.0" encoding="utf-8"?>
数据表现层或新建文档输入项可以不提供uid,这样数据结构进一步退化为 <entry><content></content></entry>
JSON 转换
Astinus 文档允许表达为JSON 格式,也接受JSON格式的数据转入
JSON 格式的根是{id:'uid', cotent:[]},
数据表现层或新建文档输入项可以不提供uid,这样数据结构最大可退化为 [...]
content序列内,以字符串序列表达正文内容,序列元信息通过文本元素间嵌入的{}元素表达。
设计原则
Astinus 文档格式的设计遵循如下的原则:https://bitbucket.org/March/astinus/wiki/edit/AstinusDocumentFormat
- 对应用层编程友好,尽可能支持通用编程接口。
- 对存储层友好,容易存储和优化性能,允许在数据库端编程管理。
- 自描述,在离开服务器支持的环境下可以解读
- 非SQL表格,支持条目的非结构化字段表述
- 允许文本化,添加全文索引支持
- 尽可能少的保留字
- 允许DAL信息的使用
Astinus 的文档处理环境遵循如下的原则:
- 在应用层保持文档数据完整性
- 允许提取元信息进行计算
- 允许元信息编程
- 允许版本化支持(考虑并发处理)
- 允许解释DAL和嵌入式编程
--
杀人放火金腰带,补路修桥无尸骸。
……
劉鑫
March.Liu
没有评论:
发表评论