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

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 初学XML,我的学习过程分享 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 484935 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 初学XML,我的学习过程分享 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     starting 帅哥哟,离线,有人找我吗?
      
      威望:4
      等级:大二(研究C++)
      文章:223
      积分:1611
      门派:XML.ORG.CN
      注册:2006/3/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给starting发送一个短消息 把starting加入好友 查看starting的个人资料 搜索starting在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看starting的博客楼主
    发贴心情 初学XML,我的学习过程分享

    很多朋友和我一样初学XML,我也是一个初学XML的新手,让我们在讨论中学习XML.

    看过很多教程,大家还会问同样一个问题,XML是什么?XML是有什么用?这类问题.
    我以自己的话来说明这些问题.

    一个正确的概念很重要,其码不会失去方向.下面引用一位朋友的贴子来作回答:

    XML初学者普遍存在的问题

    1。XML是什么?(不要说是可扩展的标记语言之类的话)
    2。XML可以做什么?怎么做?(不需要回答,只需要列举出一个简单的例子即可)


    1: XML,是用来描迷数据的.
    2:举一个例子说明:有A数据库 B数据库,他们之间的标准不同,不能互传.那么你可以把数据放在XML中,而后就可以让A,B之间可以共同传输数据了.

    补充:
    首先要有一个概念,你最好不要去用XML设计网页,不是说不可以, 只是要说明,XML不是HTML的替代.

    有了这个概念,就不会有很多的看完一个一个的教程,还不知道XML做什么,很明了
    XML就是为了描述数据

    开始学习XML:
    1.工具:XMLSPY2005,个人喜欢英文版.(当前下的2006英文版,注册有问题)
    2.学习XML从那里开始?
       即我要说明的是:先写XML还是先写DTD或是XML Schemas.
       大多的教程从XML说起,再说DTD...再说XML Schemas...
       不过我个人觉的,先了解一下XML的基本语法,而后跳过DTD,从Schemas开始.
       这样不会让DTD搞的没兴趣..而后再对DTD作一定了解.这里要说明,我觉的先写
      好一个Schemas再写XML比较好.即,先建立模型.再去填数据.
    (这只是我自己的爱好,朋友们别扔板砖)

    下面的先从一个很简单的例子开始,让大家有点兴趣...
    1.打开XMLSPY2005.点新建

    此主题相关图片如下:
    按此在新窗口浏览图片
    选XSD W3C XML Schemas.
    2.

    此主题相关图片如下:
    按此在新窗口浏览图片
    作如图修改,而后点左侧的图标,进入下图
    3.

    此主题相关图片如下:
    按此在新窗口浏览图片
    在Book上点右键选择Add child-->sequence.插入一个容器

    此主题相关图片如下:
    按此在新窗口浏览图片
    4.在刚刚的容器上再点右键.作Add child-->ELEMENT

    此主题相关图片如下:
    按此在新窗口浏览图片
    5.做如下填加,如Setup 4.

    此主题相关图片如下:
    按此在新窗口浏览图片
    6.点选最下面的TEXT.如图

    此主题相关图片如下:
    按此在新窗口浏览图片
    这里是源码.

    到这里实际上我们做了一个XML Schemas.很简单,以后在说明
    具体的意思.
    我们现在可以点另存为,存为First.xsd.


    下面建立关于这个这个Schemas的XML文件.
    再次选新建(不用关闭刚刚的XSD文件),这次选XML DOCUMNET文件.
    出现下图:

    此主题相关图片如下:
    按此在新窗口浏览图片
    选Schema.指定刚刚的XSD的保存路径.
    这时打开是以TEXT方式,我还是选最下面的Gird,出现下图:

    此主题相关图片如下:
    按此在新窗口浏览图片
    作如下图的改动:

    此主题相关图片如下:
    按此在新窗口浏览图片
    点保存为:First.xml

    那么你此时可以点下边的TEXT.回到代码方式.就可以看到XML文件的内容.

    你一定听说过"好的格式"与"有效格式"的概念.
    到这里,你建立了一个Schemas文件,一个XML文件.
    按F5,你可以检查这个XML文件是不是一个"好的格式",再按F8你可以查看他
    是不是一个"有效的格式".

    下面再分析这个过程:

    [此贴子已经被作者于2006-4-2 0:53:10编辑过]

       收藏   分享  
    顶(6)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/1 16:17:00
     
     starting 帅哥哟,离线,有人找我吗?
      
      威望:4
      等级:大二(研究C++)
      文章:223
      积分:1611
      门派:XML.ORG.CN
      注册:2006/3/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给starting发送一个短消息 把starting加入好友 查看starting的个人资料 搜索starting在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看starting的博客2
    发贴心情 
    先看一下First.xml的代码:
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by  () -->
    <Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="First.xsd">
     <name>XSLT</name>
     <author>Michael Kay</author>
     <price>$34.99USA</price>
    </Book>

    是不是很容易理解.可能不能理解就是那一长串的"网址",那是一个很重的概念.
    NAMESPACE.这个先不说,我们看代码:
    <Book>
        <name>XSLT</name>
        <author>Michael Kay</author>
        <price>$34.99USA</price>
    </Book>

    <Book>...</Book>是根元素.
    <name>.<author>.<price>可以说是根元素下的子元素.

    这里有几点注意:
    1.一定要结束标记.如:<Book>...</Book>
    2.XML元素大小写是不一样的:<Book>...</book>必定出错
    3.要合理嵌套.<Book><name>...</Book></name>是错的
    细节很多,不详细说明.
    其实我们现在就可以很容易的写一个XML文档,基于这个方式.
    但还是不提倡先写XML再写DTD或是Schemas.
    打个比方: XML是一个人,DTD AND SCHEMAS是马甲.首先要理解的就是我们用DTD和Schema是为了定义和约束XML的.好,我们先把这个约束和定义做好,即先做马甲.而后再给那个人穿上..我想这样是容易的,如果你先写XML再写马甲的的话...呵呵

    再看那个First.xsd:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
     <xs:element name="Book">
      <xs:annotation>
       <xs:documentation>Comment describing your root element</xs:documentation>
      </xs:annotation>
      <xs:complexType>
       <xs:sequence>
        <xs:element name="name"/>
        <xs:element name="author"/>
        <xs:element name="price"/>
       </xs:sequence>
      </xs:complexType>
     </xs:element>
    </xs:schema>

    Schemas是以XML的表达形式定义和约束XML文件的.所以在语法上是相似的.

    <xs:schema>...</xs:schema>是Schemas申明.后面的接着是命名空间.
    <xs:element name="Book">..</xs:element>是定义了元素Book.

    <xs:annotation>
        <xs:documentation>Comment describing your root element</xs:documentation>
    </xs:annotation>
    这个是注释.

    <xs:complexType>..</xs:complex>复杂类型申明.[有的朋友会问,还没学简单类型就学复杂类型,这不是...,不过说真的,先说复杂类型还是好理解.]

    <xs:sequence>...</xs:sequence>这其实就是在最初的时候所说的容器.相同的还有另外两个<all>...</all> and <choice>..</choice> sequence是顺序出现,all是乱序出现,choice选择性出现.如果你要在复杂类型里加入别的元素或是属性的话,那么必定有一个
    容器!

    <xs:element name="name"/>
    <xs:element name="author"/>
    <xs:element name="price"/>
    这三个是在Sequence包围中,现在可以理解容器的概念了吧..
    上面还有一个要说的.

    <xs:element name="name"/>这其实是个空元素.在XML中空元素的申明就是这样子的.
    这东西就不需要额外的结束标记了.


    这是对两段代码的简单分析...


    [此贴子已经被作者于2006-4-2 18:58:15编辑过]
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/2 18:35:00
     
     hldhl 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:13
      积分:111
      门派:XML.ORG.CN
      注册:2006/1/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hldhl发送一个短消息 把hldhl加入好友 查看hldhl的个人资料 搜索hldhl在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hldhl的博客3
    发贴心情 
    支持一下再看..

    精华啊.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/3 1:35:00
     
     hldhl 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:13
      积分:111
      门派:XML.ORG.CN
      注册:2006/1/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hldhl发送一个短消息 把hldhl加入好友 查看hldhl的个人资料 搜索hldhl在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hldhl的博客4
    发贴心情 
    还有继续的吗?还想看
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/3 1:46:00
     
     feirate 帅哥哟,离线,有人找我吗?
      
      
      威望:4
      等级:大三暑假(参加全国数模竞赛拿了一等奖)
      文章:155
      积分:749
      门派:XML.ORG.CN
      注册:2006/3/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给feirate发送一个短消息 把feirate加入好友 查看feirate的个人资料 搜索feirate在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看feirate的博客5
    发贴心情 
    写好一个xml文件再让xmlspy自动生成xsd文件也很方便,不过就是元素之间的内容会被枚举列出来....
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/3 7:46:00
     
     zhwpost 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:13
      积分:106
      门派:XML.ORG.CN
      注册:2006/4/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zhwpost发送一个短消息 把zhwpost加入好友 查看zhwpost的个人资料 搜索zhwpost在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zhwpost的博客6
    发贴心情 
    不错啊
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/3 9:18:00
     
     starting 帅哥哟,离线,有人找我吗?
      
      威望:4
      等级:大二(研究C++)
      文章:223
      积分:1611
      门派:XML.ORG.CN
      注册:2006/3/23

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给starting发送一个短消息 把starting加入好友 查看starting的个人资料 搜索starting在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看starting的博客7
    发贴心情 
    写一XML文档作一小结:
    1.元素,属性和值
       <name language="english">Tiger</name>
    2.书写XML的规则
       1).根元素是必须的
       2).结束标记是必须的
       3).元素的嵌套要适当
       4).大小写敏感
       5).值必放在引号内
    3.申明XML版本.
       <?xml version="1.0" encoding="UTF-8"?>
    也就这形式,注意后的UTF.如果你有中文内容,改成gb2312吧
    这个encoding是可选的
    只有这一个例外.没有结束标记
    <?  ..... ?>
    4.增加属性,属性是给元素增加一个额外的信息
    <name language="English">
    5.空元素
    两种表式法:
       <name></name>
    OR</name>
    两者是相同
    6.注解:<!--      -->
    7.五个特殊的符号

       &        & amp;
       <        & lt;
       >        & gt;
       "         & quot;
       '          & apos;


    想在XML里表达出前面的符号,就用后面的代替.
    差不多这就些吧..
      

    XML Schema

    XML Schema提供一个更丰富的XML文档结构定义,Schema是XML所写,用XML规范改写的
    DTD,同时增加扩充功能.
    特点:1.一致性,与XML一致.可被XML编辑器编辑,可被XML分析器解析.
    2.扩展性.对DTD进行扩充,引入数据类型
    3.易用性.XML API(DOM AND SAX)只对XML实例有效.对DTD无效.
       Schemas可用DOM 和SAX方式
    4.规范性,Schema用元素内容和属性来定义文档的整体结构,如那些元素可出现,元素间的关系,元素内容和属性,以及元素出现的顺序.
    5.互换性.可交换彼此的Schema

    下面再做一个小小的Schema来说明:
    这个例子来自:A semantic Web Primer.
    先看下图.是一个关于电子邮件的.



    此主题相关图片如下:
    按此在新窗口浏览图片
    下面构建这个Schema,并在构建的同时说明Schema语法

    [此贴子已经被作者于2006-4-3 14:47:49编辑过]
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/3 13:31:00
     
     feirate 帅哥哟,离线,有人找我吗?
      
      
      威望:4
      等级:大三暑假(参加全国数模竞赛拿了一等奖)
      文章:155
      积分:749
      门派:XML.ORG.CN
      注册:2006/3/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给feirate发送一个短消息 把feirate加入好友 查看feirate的个人资料 搜索feirate在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看feirate的博客8
    发贴心情 
    支持,期待..
    能透露下详细的用法都有什么,先给个目录
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/3 13:43:00
     
     plaguelord 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2006/4/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给plaguelord发送一个短消息 把plaguelord加入好友 查看plaguelord的个人资料 搜索plaguelord在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看plaguelord的博客9
    发贴心情 
    谢谢
    新人  ,初学者  
    感激
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/3 15:43:00
     
     iero 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:62
      门派:XML.ORG.CN
      注册:2006/3/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给iero发送一个短消息 把iero加入好友 查看iero的个人资料 搜索iero在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看iero的博客10
    发贴心情 
    支持一下
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/4 14:40:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/28 19:26:20

    本主题贴数277,分页: [1] [2] [3] [4]... [28]

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