发布SML简单标记语言标准,发布符合SML规范的函数库,发布SML数据绑定工具(for C)
时间:2010-08-23
来源:互联网
本帖最后由 BetonArmEE 于 2010-08-23 23:49 编辑
SML简单标记语言
〇、由XML认识SML
以下是一段XML文本
<book status=” sale”>
<name>SML简单标记语言</name>
<author>calvin</author>
<price>25.00</price>
<location>07,10,79</location>
</book>
我们把它简化一下,语法采用类似c语言,就变成了
book ( status = ” sale” )
{
name = “SML简单标记语言” ;
author = “calvin” ;
price = 25.00 ;
location = “07,10,79” ;
} ;
希望你还能识别出原XML文本中的标记、属性和值,以及它们之间的结构关系,恭喜您,你成功把XML转换为SML了,很简单吧 ^_^。
这就是SML!!!
一、SML概述
SML(Simple Markup Language)是一种语法参考于c语言,又拥有XML结构化描述数据能力的标记语言。
SML语法接近于c、JAVA等语言,更能被主流程序员熟识。
SML跟XML一样,既便于结构化展现给人阅读,也能字节流化便于程序处理,同时去除了XML的标记开闭冗余,因此节省了数据存储和网络流量。
二、SML表达规范
(当前SML表达规范版本为“1.0.0”)
2.1.SML词法
最简单的SML语法是:“标记名 = 标记值”,其中“标记名”和“标记值”都是SML标识,”=”是SML关键字。
SML标识可以是除SML关键字以外的字母数字组合(暂时不支持双字节)。如果SML标识包含关键字或者白字符(空格、TAB、回车),用一对“””“’”括起来,如果里面再包含“””“’”,用“\”转义,“\”用自己转义即“\\”。以下是一些合法的SML标识:
abc
“ABC 123”
“DEF\”456”
“DEF\\456””
‘DEF”456’
“=”
因为第一个SML解析器是用c写的,c对字符串大小敏感,所以SML标识大小写敏感。
SML关键字有赋值“=”、属性区域“(”“)”、子节点区域“{”“}”、结束“;”,以下是一个比较综合的表达式:
tag ( attr1 = attr1_value ; attr2 = attr2_value )
{
subtag1 = subtag1_value ;
subtag2 = subtag2_value ;
} ;
SML标识和SML关键字之间可以直接连接,如果会引起歧义则用白字符(空格、TAB、回车)隔开,解析器在解析SML词法时会忽略白字符。
2.2.SML语法
SML语法遵循以下表达式规则:
表达式 := 表达式1 ; 表达式2
表达式 ;
... 表达式 )
... 表达式 }
由此看出表达式是可以迭代的,只要中间用“;”隔开。表达式最后用“;”结束。如果最后是“)”或者“}”则可省略“;”。
标记表达式 := 标记名 ( 属性表达式 ) = 标记值 ;
标记表达式 := 标记名 ( 属性表达式 ) { 子节点标记表达式 } ;
属性表达式 := 属性名 = 属性值 ;
比如:
name = “SML简单标记语言” ;
book
{
...
} ;
book ( status = ” sale” ; publish = “yes” ) { ... } ;
2.3.SML节点树
和XML一样,SML逻辑上是以树结构铺开,且必须至少有一个根节点,每一个树枝树叶都是一个节点,节点拥有属性集合,节点要不作为子节点的父节点,要不直接挂接节点数据,最常用的节点数据类型是字符串。
一棵完整的SML节点树在存储上称为一个SML文档(SML Document) ,每个SML树枝树叶称为SML节点(SML Node),SML节点上有SML节点属性(SML Attrerty),SML节点是个抽象对象,真正存放SML数据的对象是SML元素(SML Element),挂接在SML节点上。
三、SML附加规范
3.1.SML头信息
和XML一样,SML把一些头信息放在文档首个标记的属性中,其中包括表达规范版本、标识编码类型等,如下:
!sml ( version = 1.0.0 ; coding = GB18030 ) ;
四、SML应用接口
4.1.iSML函数库
iSML是官方发布的第一个符合SML表达规范的函数库,目前包含了一个SML树操作函数集合和一个DOM方式解析器。
(具体请参见《iSML函数库参考手册》)
4.2.SML数据绑定工具sml2c(for C)
sml2c是官方发布的符合SML表达规范的基于c语言的数据绑定工具。使用sml2c处理模板文件生成c结构定义头文件、SML节点树与c结构相互数据映射函数以及一些其它实用函数源代码文件,使得应用开发人员把操作SML节点树转变为操作c结构体变量,封装了SML数据和应用代码耦合层,简化了应用处理SML数据。
(具体请参见《sml2c数据绑定工具使用手册》)
五、SML周边
5.1.SML网络资源
SML目前只有官方论坛 http://tieba.baidu.com/f?kw=calv ... search&ie=utf-8 (暂时放在百度贴吧),上面还可以下载到最新版的iSML函数库和sml2c工具。
-----------------------------------
基础扩展函数库iLibX(被iSML依赖)
http://www.163disk.com/fileview_63659.html
第一个符合SML标准的函数库iSML
http://www.163disk.com/fileview_63660.html
SML数据绑定工具sml2c
http://www.163disk.com/fileview_63661.html
SML简单标记语言
〇、由XML认识SML
以下是一段XML文本
<book status=” sale”>
<name>SML简单标记语言</name>
<author>calvin</author>
<price>25.00</price>
<location>07,10,79</location>
</book>
我们把它简化一下,语法采用类似c语言,就变成了
book ( status = ” sale” )
{
name = “SML简单标记语言” ;
author = “calvin” ;
price = 25.00 ;
location = “07,10,79” ;
} ;
希望你还能识别出原XML文本中的标记、属性和值,以及它们之间的结构关系,恭喜您,你成功把XML转换为SML了,很简单吧 ^_^。
这就是SML!!!
一、SML概述
SML(Simple Markup Language)是一种语法参考于c语言,又拥有XML结构化描述数据能力的标记语言。
SML语法接近于c、JAVA等语言,更能被主流程序员熟识。
SML跟XML一样,既便于结构化展现给人阅读,也能字节流化便于程序处理,同时去除了XML的标记开闭冗余,因此节省了数据存储和网络流量。
二、SML表达规范
(当前SML表达规范版本为“1.0.0”)
2.1.SML词法
最简单的SML语法是:“标记名 = 标记值”,其中“标记名”和“标记值”都是SML标识,”=”是SML关键字。
SML标识可以是除SML关键字以外的字母数字组合(暂时不支持双字节)。如果SML标识包含关键字或者白字符(空格、TAB、回车),用一对“””“’”括起来,如果里面再包含“””“’”,用“\”转义,“\”用自己转义即“\\”。以下是一些合法的SML标识:
abc
“ABC 123”
“DEF\”456”
“DEF\\456””
‘DEF”456’
“=”
因为第一个SML解析器是用c写的,c对字符串大小敏感,所以SML标识大小写敏感。
SML关键字有赋值“=”、属性区域“(”“)”、子节点区域“{”“}”、结束“;”,以下是一个比较综合的表达式:
tag ( attr1 = attr1_value ; attr2 = attr2_value )
{
subtag1 = subtag1_value ;
subtag2 = subtag2_value ;
} ;
SML标识和SML关键字之间可以直接连接,如果会引起歧义则用白字符(空格、TAB、回车)隔开,解析器在解析SML词法时会忽略白字符。
2.2.SML语法
SML语法遵循以下表达式规则:
表达式 := 表达式1 ; 表达式2
表达式 ;
... 表达式 )
... 表达式 }
由此看出表达式是可以迭代的,只要中间用“;”隔开。表达式最后用“;”结束。如果最后是“)”或者“}”则可省略“;”。
标记表达式 := 标记名 ( 属性表达式 ) = 标记值 ;
标记表达式 := 标记名 ( 属性表达式 ) { 子节点标记表达式 } ;
属性表达式 := 属性名 = 属性值 ;
比如:
name = “SML简单标记语言” ;
book
{
...
} ;
book ( status = ” sale” ; publish = “yes” ) { ... } ;
2.3.SML节点树
和XML一样,SML逻辑上是以树结构铺开,且必须至少有一个根节点,每一个树枝树叶都是一个节点,节点拥有属性集合,节点要不作为子节点的父节点,要不直接挂接节点数据,最常用的节点数据类型是字符串。
一棵完整的SML节点树在存储上称为一个SML文档(SML Document) ,每个SML树枝树叶称为SML节点(SML Node),SML节点上有SML节点属性(SML Attrerty),SML节点是个抽象对象,真正存放SML数据的对象是SML元素(SML Element),挂接在SML节点上。
三、SML附加规范
3.1.SML头信息
和XML一样,SML把一些头信息放在文档首个标记的属性中,其中包括表达规范版本、标识编码类型等,如下:
!sml ( version = 1.0.0 ; coding = GB18030 ) ;
四、SML应用接口
4.1.iSML函数库
iSML是官方发布的第一个符合SML表达规范的函数库,目前包含了一个SML树操作函数集合和一个DOM方式解析器。
(具体请参见《iSML函数库参考手册》)
4.2.SML数据绑定工具sml2c(for C)
sml2c是官方发布的符合SML表达规范的基于c语言的数据绑定工具。使用sml2c处理模板文件生成c结构定义头文件、SML节点树与c结构相互数据映射函数以及一些其它实用函数源代码文件,使得应用开发人员把操作SML节点树转变为操作c结构体变量,封装了SML数据和应用代码耦合层,简化了应用处理SML数据。
(具体请参见《sml2c数据绑定工具使用手册》)
五、SML周边
5.1.SML网络资源
SML目前只有官方论坛 http://tieba.baidu.com/f?kw=calv ... search&ie=utf-8 (暂时放在百度贴吧),上面还可以下载到最新版的iSML函数库和sml2c工具。
-----------------------------------
基础扩展函数库iLibX(被iSML依赖)
http://www.163disk.com/fileview_63659.html
第一个符合SML标准的函数库iSML
http://www.163disk.com/fileview_63660.html
SML数据绑定工具sml2c
http://www.163disk.com/fileview_63661.html
作者: BetonArmEE 发布时间: 2010-08-23
不向 IETF 提交标准的标记语言不是好标记语言。
JSON 比这个好用多了。
JSON 比这个好用多了。
作者: langue 发布时间: 2010-08-24
自己搞一个意义何在,有何优势?
作者: hellioncu 发布时间: 2010-08-24
我也喜欢json。 当json 遇到javascript时。更是无敌了。
作者: zhangsuozhu 发布时间: 2010-08-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28