• XML之基础和DTD解析


    本笔记可根据W3school教程学习:
      首先-----了解XML文档结构、语法规范、作用
        -----了解DTD约束的作用、具体约束语法
    <?xml version="1.0" encoding="UTF-8"?>
    <中国>
        <北京><北京>
        <海南></海南>
    </中国>
    XML:eXensible Markup Language, 指可扩展标记型语言。(我们学过HTML语言也是该类型的,因此很多相似)
         相同点:与HTML都是标记性语言,都用标签来操作。
         与HTML的不同点:HTML是显示数据的,而XML是存储数据的。
                   HTML中的标签都是定义好的,而XML中可以自己定义标签和结构。  
                   XML可以用中文标签
        功能:作为配置文件
                   传输和存储数据。
      如何理解呢?-------在我们写程序中,有很多数据需要在不同的操作系统和语言中交换,不同的操作系统和语言使用不同的方式来存储数据(两者不兼容),
                那么我们通过XML数据以纯文本的格式存储需要的传递和保存的数据,在不同的系统和语言中通过解析相同的XML来确保数据相同。  
              XML 是独立于软件和硬件的信息传输工具。
     
     语法: XML是形成了一种树结构,就是只有一个根标签,该标签包含其他所有的子标签。而所有标签必须要包括两部分---起始标签和结束标签
           而标签本身的需要------严格区分大小写,起始和结束标签必须一致。标签属性的属性值需要用(单、双)引号包含
           标签本身中不能出现空格,其标签文本中的空格不会被自动删除,而是保留下来。
        XML中有些情况会遇到特殊的字符,那些字符本身是被XML语言所官方使用,那么我们在内容使用时,需要特殊转化或代替,比如:<  
        XML注释 ----- <!--注释内容-->
     
        在XML自定义标签中必须遵循命名规范:
          名称可以含字母、数字以及其他的字符
          名称不能以数字或者标点符号开始
          名称不能以字符 “xml”(或者 XML、Xml)开始
          名称不能包含空格
        
        文档结构:XML声明-------必须以<?xml .....?>作为第一行第一列出现。
          文档声明中有三个属性:
            version-----xml中version的属性值有两个(1.0)和(1.1)----1.1版本不具备向下兼容性,常用1.0,代表版本号
            encoding-----xml文本的编码方式
            standalone-----是否依赖其他文件yes/no
     
      注意:当XML中标签无内容时,能自己结束< />
          XML中提供<?xml-stylesheet type="text/css" href="css的路径"?>指令,能链接外部文件,对xml文件设置样式
          尽量不要使用属性,建议使用子元素。
      
      XML的文档构建模块:
            元素-------标签
            属性------提供元素额外的信息,
            实体-------定义普通文本的变量。
            CDATA-----字符数据,不会被解析器解析的数据。该区特殊字符无需转译。
            PCDATA---被解析的字符数据,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &amp;、&lt; 以及 &gt; 实体来分别替换它们。
      
      XML中提供了一种规范:XML的约束----对xml进行相关约束,同时提供一些,定义好的标签供开发者使用。在配置文件中经常使用到。
        dtd约束:将文档类型定义为(DTD),即文档后缀以 .dtd结尾。
             定义合法的XML文档构建模块,使用一系列合法元素来定义文档-----预定好了标签和标签使用规则
             将DTD 可成行声明于XML文档中,也可作为一个外部引用。
        dtd的作用:每一个XML文件可通过dtd文件在描述其自身的格式和验证语法标准
              独立的团体可通过一个标准的DTD来交换数据
             应用程序能某个标准的DTD来验证外部接收到的数据
             
        DTD内部使用----<!DOCTYPE 根元素 [ 元素声明 ]>
        DTD外部引用-----<!DOCTYPE 根元素 SYSTEM "dtd文件路径">
        网上DTD文件引用------<!DOCTYPE 根元素 PUBLIC  "DTD名称"  "DTD文档的URL">
        
      DTD的语法:
          声明元素-------- <!ELEMENT>,有多少个元素,写多少个 <!ELEMENT>,且按顺序,从上往下。
            元素分为简单元素和复杂元素。
                空元素 ---------------<!ELEMENT 元素名称 EMPTY>        
                简单元素----没有子标签的标签-----<!ELEMENT 元素名称  类别>
                   空元素----EMPTY关键字声明
                   字符串----(#PCDATA)关键字声明
                   任意类型----ANY关键字声明
                复杂元素---有子标签的标签-------<!ELEMENT 元素名称 (子元素1,子元素2,....)>
                   当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中
                   当子元素按照有   |    分隔开的序列进行声时,这些子元素只能出现其中的任意一个。
                   当以下符号修饰元素时: +  :表示出现一次或多次
                               :表示出现零次或一次
                               *  :表示出现零次或多次               
              <!ELEMENT note (to,from,heading,body)>
              <!ELEMENT to      (#PCDATA)>
              <!ELEMENT from    (#PCDATA)>
              <!ELEMENT heading (#PCDATA)>
              <!ELEMENT body    (#PCDATA)>
          声明属性:<!ATTLIST 元素名称 属性名称 属性类型 默认值 >  
            
            
    <!ATTLIST contact fax CDATA #IMPLIED>

        声明实体:实体是用于定义引用普通文本或特殊字符的快捷方式的变量。

            实体引用是对实体的引用

            内部实体声明------一个实体由三部分构成;一个和号(&),一个实体名称,以及一个分号-----<!ENTITY 实体名称 "实体的值">

            外部实体声明------<!ENTITY 实体名称  SYSTEM "URI/URL">

          

  • 相关阅读:
    (转)值得学习百度开源70+项目
    C#中$的用法
    (转载)《C#高级编程》读书笔记
    C#调用大漠插件
    Visual Studio 2017 扩展推荐
    C#操作Dataset数据集与SQLite数据库
    (转载)C#格式规范
    (转载)DataTable与List<T>相互转换
    FastReport.Net
    (转载)C #开源框架
  • 原文地址:https://www.cnblogs.com/Tanggula-pioneer/p/11717770.html
Copyright © 2020-2023  润新知