• DTD约束(xml基础)


    1、XML技术:与数据相关的技术,在企业中xml技术常用来存储数据和传输数据,流行的原因----xml与任何编程

    语言无关,可用于php、java、.net等任何语言。

    XML:可扩展标记语言

    XML标记随意定义-----可扩展

    XML典型存储和传输应用:

    1)、xml充当数据库,保存数据信息,

    2)、在AJAX中传输数据,WebService技术,网络中传输数据时,格式采用xml

    在html中预定义了很多标记,每个标记都有相应的显示效果,xml所标记没有被预定义,

    在xml中随便写个<name>HGL</name>都是合法的,但是你不知道这是什么意思-----所以,要想确定name标记

    的含义,需要对xml添加约束。


    XML语法;

    1>、文档声明

    2>、元素

    3>、属性

    4>、注释

    5>、CDATA块

    6>、处理指令


    任何XML必须具备文档声明:<?xml version="1.0" Encoding="utf-8" ?>

    版本一般就写1.0,当然也可以写其他的,编码格式,我个人建议最好注明为好。


    XML是一种标记语言,存储和传输数据----保存数据内容

    如果在文档声明里没有指明编码格式,浏览器在解析的时候默认是ISO-8859-1编码(不支持中文数据)

    2、注意:

      1)当xml指定Encoding="utf-8"是浏览器查看编码集---------------浏览器查看编码集必须和文件保存

        编码集一致。

      2)、新建文本文档的编码格式是ANSI也就是GBK格式,我们平时用文本写xml时最好改一下编码格式。

      3)、当声明standalone="yes",该xml是独立的xml,不依赖外面其他文件,standalone="no",该xml依赖一些文件

      4)、xml通过元素描述复杂关系模型数据。


    3、XML语法规范:

      1)、所有的xml元素必须有开始,有结束----<book>xxxx</book>,如果标签中没有内容,可以简写为----<book/>

      2)、标签不允许交叉嵌套,也就是必须要有一定秩序,哪个标签在前,哪个标签在后,都是顺这来的。

      3)、在xml文档中有且仅有一个根元素,有点类似于HTML中的<html>xxx</html>一样。

      4)、xml文件中,空格和换行都会被解析器解析的。这点和HTML不同。

      5)、严格区分大小写,属性和元素名称不能以数字开始


    4、属性定义语法:

      1)、<元素名称 属性名称="属性值" 属性名称="属性值"...>,一个元素可以定义多个属性,每个属性值必须用双引号或单引号引起来。

      2)、xml注释与HTML注释相同,都是<!--这里是注释的内容-->,注意,注释不允许嵌套!!

      3)、CDATA区域内,保留不被解析器解析的内容-----通常存放特殊的代码

      4)、部分转义字符:>:greaterthan &gt; <:lessthan &lt;

    5、CDATA和转义字符在哪些情况下使用?

      **优先使用CDATA 


    6、通过PI指令控制xml显示样式(指令之前不能有注释)

      当xml使用PI指令引用css样式------效果等同于HTML,进行页面数据显示。(CSS可以认为是HTML的样式表)

      **如果真的需要xml来进行页面显示,通过XSLT来对xml进行修饰,可以认为XSLT就是xml的样式表。

    7、XML技术应用,两大类:

    1)、传输和存储数据-----程序员为了简化开发,不对xml使用约束技术。

    **不实用xml约束技术,xml格式不一定正确

    **所有xml数据内容的生成,解析过程,都是通过程序来完成的。

    2)、使用xml作配置文件

    程序员为了保证xml的准确性,通常对xml文档使用约束技术。

    3)、为什么xml使用约束技术??

    使用约束xml文档------使元素内容格式更加规范

    8、xml技术的约束: DTD和Schema

    9、DTD快速入门:

      1)、编写数据xml----books.xml

      2)、编写dtd文件

      **为xml文档的每一个元素写一个:<!ELEMENT 元素名 (子元素)>,如果子元素是文本的话,就用#PCDATA代替。

      3)、将xml文件和dtd文件关联起来

    10、DTD和xml关联的三种方式:

      1)、内部DTD-------<!DOCTYPE 根节点 [这里写具体的ELEMENT等]>,其实就是将dtd文件和xml文件写在同一个文件中。

      2)、外部DTD(引用本地DTD)-------在xml文件中引用本地的dtd,语法格式:<!DOCTYPE 根节点 SYSTEM "dtd的路径">

      3)、公共DTD(引用网络上的DTD)-----<!DOCTYPE 根节点 PUBLIC "DTD名称" "DTD文件的url">

      注意:公共DTD在使用的时候,名称 要是w3c规范的官方名称,大家都知道的。

      

       

    11、属性(ATTLIST)定义

        语法:<!ATTLIST 元素名称 属性列表>

          属性列表:

            属性名称 类型 约束

            属性名称 类型 约束

            属性名称 类型 约束

            ....


    属性类型

    1、CDATA文本类型属性

    2、(值1|值2|值3)三个选一个

    3、ID 表示属性值唯一


    12、约束

      1)、#REQUIRED

      2)、#IMPLID

      3)、fixed value 属性值固定

      4)、default value 默认值

    13、实体(ENTITY)定义

      对于xml数据内容重复,可以抽取实体

      语法:<!ENTITY 实体名称 "实体内容">


    ======================================================================================

      

  • 相关阅读:
    iOS NSData简单解析
    CocoaPods安装和使用教程
    iOS_ruby环境的配置
    ios进行打包
    Missing iOS Distribution signing identity问题解决
    iOS 打包
    效果类似于label从下往上滑(采用uiTableView实现)
    IOS开发效率之为Xcode添加常用的代码片段
    JS中!!的用法
    java 短路与(||)时报错The operator || is undefined for the argument type(s) int, boolean
  • 原文地址:https://www.cnblogs.com/ZT-SummerRain/p/6724196.html
Copyright © 2020-2023  润新知