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

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → [讨论]一个xml的书写格式 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3255 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [讨论]一个xml的书写格式 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     zsxy168 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:36
      积分:193
      门派:XML.ORG.CN
      注册:2005/10/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zsxy168发送一个短消息 把zsxy168加入好友 查看zsxy168的个人资料 搜索zsxy168在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zsxy168的博客楼主
    发贴心情 [讨论]一个xml的书写格式

    现有一个XML文件代码,如下:

    <?xml version="1.0" encoding="GB2312"?>
    <?xml-stylesheet type="text/xsl" href="my.xsl"?>

    <root>
          <book>
          <book_sort_id>1</book_sort_id>
           <book_sort_name>类别
                    <book_id>1</book_id>
                    <book_name>书名
                            <book_name_price>价格</book_name_price>
                            <book_name_author>作者</book_name_author>
                    </book_name>
                    <book_id>2</book_id>
                    <book_name>书名
                            <book_name_price>价格</book_name_price>
                            <book_name_author>作者</book_name_author>
                    </book_name>
           </book_sort_name>
           </book>
           <book>
          <book_sort_id>2</book_sort_id>
           <book_sort_name>类别
                    <book_id>1</book_id>
                    <book_name>书名
                            <book_name_price>价格</book_name_price>
                            <book_name_author>作者</book_name_author>
                    </book_name>
                    <book_id>2</book_id>
                    <book_name>书名
                            <book_name_price>价格</book_name_price>
                            <book_name_author>作者</book_name_author>
                    </book_name>
           </book_sort_name>
           </book>
    </root>

    请问如何改写这个XML文件代码格式,才是最优秀的XML格式?因我在一处看到说元素的属性最好写成该元素的子元素,但我认为这样写也不错呀。你们说呢?


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/12/8 9:44:00
     
     98900969r 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      等级:大四寒假(收到MIT的Offer啦)
      文章:235
      积分:1555
      门派:XML.ORG.CN
      注册:2005/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给98900969r发送一个短消息 把98900969r加入好友 查看98900969r的个人资料 搜索98900969r在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看98900969r的博客2
    发贴心情 
    这样会不会看起来清楚一点:

          <bookCategory id="1" category="类别">
               <book id="1">
                    <name>书名</name>
                    <price>价格</price>
                    <author>作者</author>
               </book>
               <book id="2">
                    <name>书名</name>
                    <price>价格</price>
                    <author>作者</author>
               </book>
           </bookCategory>
           <bookCategory id="2" category="类别">
           ...
           </bookCategory>

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/12/8 13:21:00
     
     zsxy168 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:36
      积分:193
      门派:XML.ORG.CN
      注册:2005/10/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zsxy168发送一个短消息 把zsxy168加入好友 查看zsxy168的个人资料 搜索zsxy168在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zsxy168的博客3
    发贴心情 
    这样是清晰点,但好象我在一处看到说尽可能在把元素的属性归为元素的子元素这样会好些,那编文章说的理由是什么了,我已忘记。
    所以我是XML的初学者不知如何是好。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/12/8 15:08:00
     
     98900969r 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      等级:大四寒假(收到MIT的Offer啦)
      文章:235
      积分:1555
      门派:XML.ORG.CN
      注册:2005/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给98900969r发送一个短消息 把98900969r加入好友 查看98900969r的个人资料 搜索98900969r在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看98900969r的博客4
    发贴心情 
    用多了就会有自己的看法。
    其实,原来的那个样子问题不在于用属性还是用元素去表达一个数据项。你用了所谓的mixed-content model。例如:
                    <book_name>书名
                            <book_name_price>价格</book_name_price>
                            <book_name_author>作者</book_name_author>
                    </book_name>
    这里book_name元素中,书名这样的内容和book_name_price以及book_name_author这样的元素混到一起去了。
    这样的内容模型一般来说适用于文档(document),而不宜用于数据(data)。文档是准备给人读的,数据是准备给机器处理的。描述一个文档,重点在于精确描述它将要呈现的形态,每一个空格、换行、制表符等等看起来跟内容无关的多余的东西对于文档的呈现形式都有意义。而描述数据是结构化程度越高越好,处理起来越方便,多余的东西统统忽略,必须忽略。
    下面这样的结构中,书名被装在自己的元素里:
               <book id="2">
                    <name>书名</name>
                    <price>价格</price>
                    <author>作者</author>
               </book>
    要取得书名,只要用XPath:
    book/name
    而对上面那个,要取得书名,得用XPath:
    normalize-space(book_name/text() [1])
    多了两个处理:
    1. 要取得book_name的所有文本节点中的第一个
    2. 要把取得的文本节点的内容做规范化处理,去掉回车、多余的空格等。
    更为重要的是,现在书名的值依赖于写xml的习惯,即要把书名写在book_name的第一个文本节点中,假设有人不遵守这个习惯,那就糟了,我们无法取得书名。例如下面这样:
                    <book_name>???
                        ? <book_name_price>价格</book_name_price> 123
                      三   <book_name_author>作者</book_name_author>书名
                    </book_name>
    这时候书名是处在book_name的第三个文本节点中,但是我们并不知道,我们只知道书名在book_name的文本中的某个地方。这时候怎么获取书名呢?处理起来就麻烦大了。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/12/8 15:53:00
     
     zsxy168 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:36
      积分:193
      门派:XML.ORG.CN
      注册:2005/10/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zsxy168发送一个短消息 把zsxy168加入好友 查看zsxy168的个人资料 搜索zsxy168在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zsxy168的博客5
    发贴心情 
    谢谢98900969r!
    我明白了。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/12/9 9:28:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/9/29 8:42:21

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

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