zoukankan      html  css  js  c++  java
  • XML 可拓展标记语言

    XML 简介

    a) xml, eXtensible Markup Language, 可拓展标记语言.是一种标记语言.
    b) xml是一种非常灵活的语言, 没有固定的标签, 所有的标签都可以自定义.
    c) 通常,xml被用于信息的记录和传递. 因此xml经常用于充当配置文件

    XML格式

    a) 声明信息 ,用于描述XML的版本,编码方式.

    版本始终是1.0 编码一般选utf-8

    <?xml version="1.0" encoding="UTF-8"?>
    

    b) 根元素 (一对标签)

    根元素有且仅有一个

    c) xml是大小写敏感的

    d) 标签是成对的,而且要正确嵌套

    e) 属性值要使用双引号

    下面id就是属性,""里面是属性值

    <?xml version="1.0" encoding="utf-8"?>
    <a>
    	<aa id="101">
    		xxx
    	</aa>
    </a>
    

    f) 注释写法

    <!-- 这里是注释-->
    
    <?xml version="1.0" encoding="utf-8"?>
    <books>
    	<book>
    		<name>
    			xml101
    		</name>
    		<author>
    			张三
    		</author>
    		<price>
    			50.5
    		</price>
    	</book>
    	<book>
    		<name>
    			xml102
    		</name>
    		<author>
    			李四
    		</author>
    		<price>
    			40.4
    		</price>
    	</book>
    </books>
    <!-- 这里是注释-->
    

    可以直接用浏览器打开

    还可以折叠

    DTD

    DTD 简介

    a) DTD , Document Type Definition,文档类型定义

    b) DTD 用于约束xml的文档格式,保证xml是一个有效的xml.

    c) DTD 可以分为两种,内部DTD,外部DTD.

    DTD内部声明

    假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:

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

    元素声明语法 :

    数量词

    +: 出现一次或多次
    ?: 出现0次或一次
    *: 出现任意次

    属性声明语法

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

    PCDATA

    PCDATA 的意思是被解析的字符数据(parsed character data)。

    可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。

    PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。

    文本中的标签会被当作标记来处理,而实体会被展开。

    不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。

    CDATA

    CDATA 的意思是字符数据(character data)。

    CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。

    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE scores[
    	<!ELEMENT  scores (student*)>
    	<!ELEMENT  student (name,course,score)>
    	<!ATTLIST  student id CDATA #REQUIRED>
    	<!ELEMENT  course (#PCDATA)>
    	<!ELEMENT  score (#PCDATA)>
    	<!ELEMENT  name (#PCDATA)>
    ]>
    
    <scores>
    	<student id="1">
    		<name>
    			张三
    		</name>
    		<course>
    			数学
    		</course>
    		<score>
    			75
    		</score>		
    	</student>
    	<student id="2">
    		<name>
    			李四
    		</name>
    		<course>
    			数学
    		</course>
    		<score>
    			88
    		</score>		
    	</student>
    </scores>
    

    外部的DTD声明

    假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:

    要创建一个单独的dtd文档 1.dtd

    <?xml version="1.0" encoding="utf-8" ?>
    <!ELEMENT  scores (student*)>
    <!ELEMENT  student (name,course,score)>
    <!ATTLIST  student id CDATA #REQUIRED>
    <!ELEMENT  course (#PCDATA)>
    <!ELEMENT  score (#PCDATA)>
    <!ELEMENT  name (#PCDATA)>
    

    然后引入

    <?xml version="1.0" encoding="utf-8" ?>
    <!-- 引入外部DTD文件-->
    <!DOCTYPE scores SYSTEM "1.dtd">
    
    <scores>
    	<student id="1">
    		<name>
    			张三
    		</name>
    		<course>
    			数学
    		</course>
    		<score>
    			75
    		</score>		
    	</student>
    	<student id="2">
    		<name>
    			李四
    		</name>
    		<course>
    			数学
    		</course>
    		<score>
    			88
    		</score>		
    	</student>
    </scores>
    

    DTD实体

    参考 https://blog.csdn.net/Liuqz2009/article/details/51848912

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

    实体引用是对实体的引用。

    实体可在内部或外部进行声明。

    实体格式如下: 以下是代码片段:

    实体又分两类:
    1,一般实体(格式:&实体引用名;)
    2,参数实体(格式:%实体引用名;)
    一般实体,可以在XML文档中的任何位置出现的实体称为一般实体。实体可以声明为内部实体还是外部实体。
    外部实体分SYSYTEM及PUBLIC两种。SYSYTEM引用本地计算机,PUBLIC引用公共计算机,
    外部实体格式如下:

    管理实体引用的规则包括:

    引用实体前,必须先在XML文档中声明该实体。
    实体引用不应含有任空空格。例如:& title; &title;都是不对的。
    实体引用的XML文件必须是格式良好的。

    一个内部实体声明

    语法:

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

    例子:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE root[
    	<!ENTITY x "First">
        <!ENTITY y "Second">
        <!ENTITY writer "Bill Gates">
        <!ENTITY copyright "Copyright W3School.com.cn">
    ]>
    <root>
        <x>&x; </x>
        <y>&y; </y>
        <author>&writer;&copyright;</author>
    </root>
    

    一个外部实体声明

    语法:

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

    例子:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE root[
    	<!ENTITY test SYSTEM "test.xml">
    ]>
    
    <root>&test;</root>
    

    外部参数实体:

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE root[
    	<!ENTITY % param1 "hello">
    	<!ENTITY % param2 "woeld">
    	<!ENTITY % dtd SYSTEM "./1.dtd">
    	%dtd;
    ]>
    <root> content "%param1;%param2;"</root>
    
  • 相关阅读:
    dedecms如何调用指定栏目下的相关文章
    dedecms二次开发标签总结
    如何在网页中显示数学公式与化学公式的方法
    CSS的选择器
    CSS属性之Overflow之作用
    FTP服务器架构简单方法
    dedecms性能选项与其它选项
    dedecms会员设置、互动设置
    dedecms图片设置属性
    dedecms核心设置
  • 原文地址:https://www.cnblogs.com/l0nmar/p/13337996.html
Copyright © 2011-2022 走看看