以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  采用上下文无关文法定义schema文档语法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=84114)


--  作者:liaomingxue
--  发布时间:4/2/2010 2:19:00 PM

--  采用上下文无关文法定义schema文档语法
比如c语言语法定义:(这里只是一个示例,正确例子可参见c语言标准)

translation-unit      := (function-definition | declaration)+
function-definition  :=  declaration-specifiers? declarator declaration* block
declaration            := declaration-specifiers init-declarator ";"
...

那么,将所有schema文档的集合看成schema语言,则该语言也应当有一个形式化定义。
至于是否可采用上下文无关文法进行描述,可以进一步讨论。

为什么要形式化定义这个schema语言?我的考虑基于这样几点:
(1)目前的各种教程、规范、标准,包括w3c,我感觉仍然不够严格,并且十分庞大、散乱,使人有雾里看花的烦恼,采用形式化定义,我期望10页纸篇幅就能完整、清晰、无二义地表达出来。
(2)从我个人角度看,比如,我希望了解<xs:schema>这个元素,究竟应该、可以有哪些属性,这些属性可以如何取值,当我带着这个目的查找w3c标准时,却极其繁琐,我感觉那些人是不是故意将一个简单问题给复杂化了。

不知道各位有什么好的建议。


--  作者:liaomingxue
--  发布时间:4/6/2010 9:48:00 AM

--  
我先弄个最简单的吧,当然还不完善,看有没有不符合标准的地方。
不知道上下文无关文法中如何表达非顺序出现的多个元素

schema  := <schemaElement>
schemaElement :=
  "<schema" schemaAttributeList ">"  schemaElementList "<"
schemaAttributeList  := 
  [attributeFormDefault]
  [blockDefault]
  [elementFormDefault]
  [finalDefault]
  [id]
  [targetNamespace]
  [version]
  [xml:lang]
  [namespace]*
schemaElementList :=
  (include | import | redefine | annotation)*
  (
    (
      (simpleType | complexType | group | attributeGroup) |
      element | attribute | notation
    )
    annotation*
  )*


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
214.844ms