zoukankan      html  css  js  c++  java
  • 1.XML的基础和DOCTYPE字段的解析 DTD——文档类型定义(Document Type Definition)/ 由于XML可以自定义标签,那么自然各人编写的标签不一样,这样同步数据便成了问

    1. XML的基础和DOCTYPE字段的解析

    DTD——文档类型定义(Document Type Definition)/

    由于XML可以自定义标签,那么自然各人编写的标签不一样,这样同步数据便成了问题,因为其它人不知道某个标签应该怎么用,表示什么意思.DTD就是为了解决此问题的!

     

    DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。

     

    DTD分为内部DTD与外部DTD,内部DTD包含在XML文档中,外部DTD则通过URL引用.一个DTD文件是以.dtd结尾的文本文件

     

      1. DOCTYPE分析 DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,

     

      1. 格式 <!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference">

     

    最简单的 DOCTYPE 声明只标识文档的根元素。

    <!DOCTYPE rootElement>

    更常见的情况是,使用 DOCTYPE 声明的文档引用包含组成 DTD 的声明的外部文档。 以下内容可以用于标识外部 DTD。

    <!DOCTYPE rootElement SYSTEM "URIreference">

    URIreference 指向包含声明的文件。

    <!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference">

    PublicIdentifier 提供一个独立的标识符,有些 XML 分析器可以使用该标识符引用 DTD,代替 URIreference。 如果使用分析器的系统没有网络连接,或该连接可能会明显减慢处理速度,可以使用此标识符。

     

     

    如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容.

    而对于外部DTD,则又分为私有DTD与公共DTD,

    私有DTD使用SYSTEM表示,接着是外部DTD的URL.

    而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL

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

    公共DTD,DTD名称格式为"注册//组织//类型 标签//语言","注册"指示组织是否由国际标准化组织(ISO)注册,+表示是,-表示不是."组织"即组织名称,如:W3C; "类型"一般是DTD,"标签"是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号。最后"语言"是DTD语言的ISO 639语言标识符,如:EN表示英文,ZH表示中文,在下面的地址有完整的ISO 639语言标识符列表

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

    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

     

    "-//SPRING//DTD BEAN//EN"  指的就是此dtd的名称

     

     

    注意:虽然DTD的文件URL可以使用相对URL也可以使用绝对URL,但推荐标准是使用绝对URL.另一方面,对于公共DTD,如果解释器能够识别其名称,则不去查看URL上的DTD文件

     

    DOCTYPE 声明 [XML 标准] _ Microsoft Docs.html

    XML的基础和DOCTYPE字段的解析 - wenpengy的专栏 - CSDN博客.html

  • 相关阅读:
    Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
    玩转Web之html+CSS(一)---论坛首页表格的实现
    Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
    Android 百度地图 SDK v3.0.0 (一)
    RabbitMQ (五)主题(Topic)
    RabbitMQ (四) 路由选择 (Routing)
    数据结构中的排序算法
    冒泡排序
    hashMap与hashTable的区别
    Java重载与重写的区别
  • 原文地址:https://www.cnblogs.com/attilax/p/15197381.html
Copyright © 2011-2022 走看看