xml基础知识

来源:互联网 发布:lsb算法 delphi 编辑:程序博客网 时间:2024/06/05 10:26

一、

<?xml version="1.0"?> 
<中国>
<南京></南京>
</中国>

用浏览器打开,出现Encoding error

解决方案 :1、<?xml version="1.0" encoding="gbk"?>

2、保存文件时使用gbk编码形式另存为

问题原因:新建xml文件时,电脑自动以utf-8的码表进行存储字符,浏览器读取时,使用本地码表即gbk进行读取,会产生读取错误。因此,要保证保存在磁盘上的文件编码与xml文件申明的编码保持一致。


二、

CDATA是Character Data的缩写
作用:把标签当做普通文本内容;
语法:<![CDATA[内容]]>
例如:

<![CDATA[

    <南京>江宁</南京>

]]>

<南京>江宁</南京>   会被当做普通文本而不是标签


三、

DTD:文档内性定义(必须以utf-8编码保存)

作用:约束XML的书写规范

例如:book.dtd

<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>


XML使用DOCTYPE声明语句来指明它所遵循的DTD文档,有两种形式:
当引用的DTD文档在本地时,采用如下方式:

<!DOCTYPE根元素 SYSTEM “DTD文档路径”>

如:<!DOCTYPE 书架 SYSTEM “book.dtd”>

当引用的DTD文档在公共网络上时,采用如下方式:

<!DOCTYPE根元素 PUBLIC “DTD名称” “DTD文档的URL”>

如:<!DOCTYPE web-app PUBLIC

  "-//SunMicrosystems, Inc.//DTD Web Application 2.3//EN"

  "http://java.sun.com/dtd/web-app_2_3.dtd">


在DTD文档中使用ATTLIST关键字来为一个元素声明属性

语法:

<!ATTLIST元素名

  属性名1 属性值类型 设置说明

  属性名2 属性值类型 设置说明

  …

>


属性值类型:
CDATA:表示属性的取值为普通的文本字符串
ENUMERATED(DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
ID:表示属性的取值不能重复

设置说明
#REQUIRED:表示该属性必须出现
#IMPLIED:表示该属性可有可无
#FIXED:表示属性的取值为一个固定值。语法:#FIXED"固定值"
直接值:表示属性的取值为该默认值


<!ATTLIST 书
ISBN  ID  #REQUIRED
出版社  (上海|北京)  "上海">

0 0
原创粉丝点击