zoukankan      html  css  js  c++  java
  • XML

    前言

    XML就是语法严格的可以自己定义的HTML

    可以使用DTD定义,例

    <!DOCTYPE note [
    <!ELEMENT title (name|author|time)>
    <!ATTLIST title language CDATA #REQUIRED>
    <!ENTITY copyright "hf9">
    ]>
    

    简介

    什么是XML?

    XML指的是可拓展标记语法(EXtensible Markup Language)

    语法

    声明

    元素

    XML必须有一个根元素

    XML中的标签都必须有一个关闭标签,但声明除外(声明是xml的语法不是标签)

    XML中的标签对大小写敏感,闭合的时候必须使用同样的标签

    所有的元素都必须被正确的嵌套

    属性值必须加引号

    XML中不能使用<,需要使用实体引用来代替&lt

    XML中的空格会保留,不会像HTML一样只保留一个

    命名规则:

    • 名称可以含字母、数字以及其他的字符
    • 名称不能以数字或者标点符号开始
    • 名称不能以字符 “xml”(或者 XML、Xml)开始
    • 名称不能包含空格

    属性

    属性必须加上引号,也可以是双引号,如果要使用双引号时应当使用单引号包裹他,或者使用html实体编码

    DTD

    文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

    通过这样的一种方式来定义

    <!DOCTYPE 根元素 [元素声明]>
    

    或者是使用外部DTD

    <!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd">
    

    元素

    使用DTD来声明一个元素

    <!ELEMENT 元素名称 类别>
    

    <!ELEMENT 元素名称 (元素内容)>
    

    例:
    空元素

    <!ELEMENT 元素名称 EMPTY>
    

    PCDATA

    <!ELEMENT 元素名称 (#PCDATA)>
    

    任意类型

    <!ELEMENT 元素名称 ANY>
    

    带有子元素的元素

    <!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>
    <!ELEMENT 元素名称 (子元素名称)> 只出现一次
    <!ELEMENT 元素名称 (子元素名称)+> 出现一次或多次
    <!ELEMENT 元素名称 (子元素名称)?> 出现一次或0次
    <!ELEMENT 元素名称 (子元素名称)*> 出现0次或多次
    <!ELEMENT 元素名称 (子元素名称1|2)*> 出现子元素1或子元素2
    

    属性

    <!ATTLIST 元素名称 属性名称 属性类型 默认值>
    

    属性类型:

    • CDATA 值为字符数据 (character data)
    • (en1|en2|..) 此值是枚举列表中的一个值
    • ID 值为唯一的 id
    • IDREF 值为另外一个元素的 id
    • IDREFS 值为其他 id 的列表
    • NMTOKEN 值为合法的 XML 名称
    • NMTOKENS 值为合法的 XML 名称的列表
    • ENTITY 值是一个实体
    • ENTITIES 值是一个实体列表
    • NOTATION 此值是符号的名称
    • xml: 值是一个预定义的 XML 值

    默认值:

    • REQUIRED 属性值是必需的

    • IMPLIED 属性不是必需的

    • FIXED value 属性值是固定的

    实体

    实体是用于定义引用普通文本或特殊字符的快捷方式的变量
    一般实体声明(用于xml文档和dtd中)

    <!ENTITY 实体名称 "实体的值">
    

    参数实体声明(只用于dtd中)

    <!ENTITY % 实体名称 "实体的值">
    

    外部一般实体声明

    <!ENTITY 实体名称 SYSTEM "URI/URL">
    

    外部参数实体声明

    <!ENTITY % 实体名称 SYSTEM "URI/URL">
    

    CDATA

    不应该由 XML 解析器解析的文本数据

    CDATA的声明由结束

    PCDATA

    指的是会被解析的数据

  • 相关阅读:
    mac下完全卸载程序的方法
    Mac下检测NSTableView的滑动事件的方法
    一行代码起动全屏
    Unsupported compiler '4.0' selected for architecture 'i386'类错误解决办法
    编译错误“The run destination My Mac 64bit is not valid for Running the scheme '***',解决办法
    ios项目中导入百度地图SDK出错的问题
    Unable to resolve target 'android9'解决办法
    ios保存录制好的视频到相簿的方法
    NSTableView系列之代码创建(不用nib)
    谈内链优化不是每个站点都能做的
  • 原文地址:https://www.cnblogs.com/hf99/p/9742671.html
Copyright © 2011-2022 走看看