新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> DTD, XML Schema(XMLS), RELAX NG
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DTD/XML Schema 』 → XML Schema 的最佳实践原则 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 12835 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: XML Schema 的最佳实践原则 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 DTD/XML Schema 』的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 XML Schema 的最佳实践原则

    XML Schema 的最佳实践原则

    王凌峰  
    02-1-23 下午 02:52:55

    --------------------------------------------------------------------------------

    ARTS (零售技术标准协会)的 IXRetail 最近提出了规范 XML Schema 设计的最佳实践原则,共有17条:

    1. 所有的 XML 命名采用UCC (首字大写的大小写混合)方案,单词间无空格或连字符。
    解释:大小写混合方案(camel case)分为UCC与LCC两种。UCC要求以大写字母开头,例如:NewBookName;LCC则以小写字母开头,例如:newBookName。为了统一命名,IXRetail 推荐使用UCC,且不允许使用空格或下划线,即不能用New_Book_name或New Book Name。
    2. 可读性比标记长度更重要。
    解释:IXRetail认为,为了便于用户理解 XML 文档,增加标记的长度也是值得的。例如:CompanyID就比ID_Comp要好。
    3. 尽量避免在元素、属性和类型的命名中使用缩写。但是 GTIN(全球贸易项目编号)、ID(标识号)、POS(电子收款机系统)除外。
    解释:本原则是依据 ARTS 数据模型而提出的。例外情况是针对零售业而言,其它行业可以规定本行业的可缩写术语。
    4. 尽量不要在属性命名中包括实体名。
    在 ARTS 数据模型中,实体名通常被用作属性名字前缀。然而 XML 已具清晰的层次结构,包含前缀的属性名只会徒然增加标记长度。本原则也适用于本地元素命名。  
    5. 使用 W3C XML Schema,不要用 DTD 或其他 Schema 方案。
    解释:与 DTD 相比,W3C 的 XML Schema具有很多优点,如:XML Schema 是 XML文档;一个XML文件可以对应多个Schema;XML Schema 的内容模型可以随意扩充;XML Schema支持多种数据类型,且能自定义;XML Schema允许使用本地名称;XML Schema 可以使用空值,等等(参见http://www.w3.org/TR/xmlschema-0)。其他方案包括微软早期向 W3C 提交的 XML Schema 方案等。
    6. 枚举值的命名,应该遵循元素命名原则,且不包含数字;尽量不要使用 IXRetail 创造的新名字;尽量使用 ISO 标准命名而不是国家标准或协会标准命名。
    解释:包含数字的命名是不规范的,且给处理带来困难。自然语言词汇已经暗示了其数值,何乐而不为?
    7. 枚举值应该使用由英语单词组成的名字。
    解释:能够暗示数值的自然语言命名没有多少选择余地,而在 ARTS 数据模型中已经提供了英语命名,可以使用它们的衍生词作为名称。
    8. 命名不应与所在结构重复。
    解释:本原则是4.的推广。例如:在 元素中的 元素就不要使用 NewBookName。
    9. 所有的 XML Schema 的全局名字空间统一命名为 IXRetail,它的 URI 是 http://www.nrf-arts.org/IXRetail/namespace/ 。
    解释:本原则可以避免与其他名字空间冲突。URI 末尾的“/”代表它是目录而不是文件名。这并不重要,因为 URI 是用于给名字空间命名而不是对其定位的。其他行业可以自行规定名字空间。
    10. 所有来自 IXRetail 的 XML 实例都要指定 IXRetail 为默认名字空间。    解释:本原则可以避免在使用本行业术语时都要加上名字空间前缀 IXRetail。各行业可以指定自己的默认名字空间。注意:本原则仅适用于 XML 实例,而不是 XML Schema。
    11. 所有来自 IXRetail 的 XML Schema 都要指定 IXRetail 为默认名字空间以及目标名字空间。
    解释:在本原则下,W3C 不再是默认名字空间,相应的标准命名都要加上名字空间前缀。注意:本原则仅适用于 XML Schema 而不是 XML 实例。
    12. 凡是领域专家认为可重用的数据类型,无论是 simpleType 还是 complexType,应该在全局名字空间而不是在 Element 属性中定义。
    解释:数据类型名称很少用在标记里,即使全局名字空间里定义,并且加上领域名称和作者等前缀,也不会影响标记的总长度。
    13. Schema 中的元素名称,应该使用嵌套 Element 定义,其数据类型可以被显式或隐式定义;不要用 ref 引用全局定义。
    解释:本原则与12.相反。元素名称在标记中频频出现,因此,精简了附加信息的本地元素名称可以大大缩短标记总长度。
    14. 来自 IXRetail 的 Schema 的各个版本,都应该在 schemaLocation 属性中指定其 URI;URI 要遵循 ARTS-NRF 制定的规范 (每个 schemaLocation 都是 http://www.nrf-arts.org/IXRetail/schemaLocation/ 的子目录,且是 UTF-8 文件)。开放标记 的 version 属性不能为空,且必须与 schemaLocation 属性一致。schemaLocation 属性和 version 属性的值都要与 Schema 的许可、实施、发行信息中所述一致;还要包含符合 W3C 日期格式的发行日期。
    解释:为了规范 XML Schema 的版本控制机制,任何发行版本,包括第一版的 XML Schema ,都应该遵循本原则。任何 XML 处理器均支持 UTF-8 格式,但只有少数处理器支持简/繁体中文、日语等 UTF-16 格式的语言,因此要用 UTF-8 格式。所谓 W3C 日期格式,是指 yyyymmdd 格式,如:20020211(2002年2月11日)。版本控制机制尚未统一,故其他机构制定的规范可能与本原则有出入。
    15. 尽量使用 ARTS XML 字典中的词汇。
    解释:ARTS XML 字典中包含了 ARTS 数据模型的实体名和属性名、来自 IXRetail schemas 的名称,以及它们的衍生词。目前它的词汇以零售业为主,可以扩充到任何行业。
    16. 从全局名字空间选取名称时,尽量选取能揭示被命名对象的特定意义的复合词。
    解释:词汇具有多义性,通用词更是如此。如果不加选择,就会引起岐义,从而影响文档的可读性。本原则对于用 Element 定义的本地词汇不适用,它们所在的层次限定了其含义。
    17. 名字空间前缀要保持统一;使用 IXRetail 名字空间不需要加前缀。只能使用下列前缀和定义:  
    (1) xml(在可扩展标示语言标准方面定义)
    (2) xmlns(在可扩展标示语言标准的 Namespaces 中定义)
    (3) xs http://www.w3.org/2001/XMLSchema
    (4) xsi http://www.w3.org/2001/XMLSchema-instance
    解释:前述10.与11.两条原则已经规定了 IXRetail是默认名字空间,故不需加前缀。本原则提到的可用前缀还可进一步完善。
    小结:以上17条原则是由 IXRetail 提出来,以规范零售业的 XML Schema 的设计。基本的原则包括:规范命名的形式、合理选词、规范名字空间、与现行工业标准接轨。具体应用时,可视情况加以调整。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------

    -----------------------------------------------

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/14 14:15:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DTD/XML Schema 』的所有贴子 点击这里发送电邮给Google AdSense  访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/1 0:20:00

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.979ms