我爱编程

xml dtd schema

2017-01-02  本文已影响55人  大批

xml

xml就是一个标记语言,主要用途就是数据传输和配置文件。


eg:

<?xml version="1.0" encoding="utf-8"?>
<home name="dpdj">
  <mother>mm</mother>
  <father>bb</father>
  <son>dp</son>
</home>

dtd

DTD(文档类型定义)的作用就是定义xml文档的合法构建模块。其实就是规定了xml应该有哪些节点,节点有哪些属性。(dtd现在用的不多,大多数都被schema取代了,schema的功能和dtd类似,但是可以描述更多的信息


eg:

  <!ELEMENT home (mother,father,son)>
  <!ELEMENT mother (#PCDATA)>
  <!ELEMENT father (#PCDATA)>
  <!ELEMENT son (#PCDATA)>
  <!ATTLIST home name CDATA #REQUIRED>

怎么在xml中使用dtd

eg:

  <?xml version="1.0" encoding="utf-8"?>
  //第一种方式   直接在xml里面定义dtd描述   
   <!DOCTYPE home [
     <!ELEMENT home (mother,father,son)>
     <!ELEMENT mother (#PCDATA)>
     <!ELEMENT father (#PCDATA)>
     <!ELEMENT son (#PCDATA)>
     <!ATTLIST home name CDATA #REQUIRED>
   ]>
  //第二种方式    引用本地的dtd文件  这里的home指的是 跟元素
  <!DOCTYPE home SYSTEM "dtd文件">
  //第三种方式    引用网络上的dtd定义
  <!DOCTYPE home PUBLIC "dtdname" "url">
  <home name="">
    ....
  </home>

note:dtd文件仅仅是定义了xml的结构,并不进行语法的检查


schema

这个和dtd类似的,基于xml的dtd的替代者
eg:

  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
             targetNamespace="http://www.suse.edu.cn"
             xmlns="http://www.suse.edu.cn"
             elementFormDefault="qualified">
    <xs:element name="home">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="mother" type="xs:string"/>
          <xs:element name="father" type="xs:string"/>
          <xs:element name="son" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" use="required"/>
      </xs:complexType>
    </xs:element>
  </xs:schema>

这里需要提一下,xml的规范是由w3这个组织制定的


关于Schema其实还有很多其他的东西,有兴趣的可以 to http://www.w3school.com.cn/


Nothing is certain in this life. The only thing i know for sure is that. I love you and my life. That is the only thing i know. have a good day

:)

上一篇下一篇

猜你喜欢

热点阅读