xml、dtd学习笔记
xml用处有三:
1.可以作为程序间通讯的标准(ajax text xml json)
2.可以用作配置文件(php中用的很多)
<?php
$conn=mysql_connect("192.168.0.1","root","root");
//php 可以操作xml
?>
配置文件
<dbinfo>
<host>192.168.0.123</host>
<user>zhangsan</user>
<type>mysql</type>
<password>root</password>
</dbinfo>
3.可以当成小型数据库
如果有些数据放在数据库代价高,可以考虑直接放入xml文件
【简单语法】
<?xml version="1.0" encoding="utf-8" ?>
<大>
<中 value="xxx" value2="xxx">
<name>zhangsan</name>
<sex>man</sex>
<age>25</age>
</中>
</大>
【xml实体引用】
<【<】
>【>】
'【'】
"【"】
&【&】
【如何使用xml文件传递、保存一个图片?】
答:使用程序先读入到内存,然后保存到xml文件的<![CDATA[ 文件内容]]>,如:<头像><![CDATA[@#¥%]]></头像>
了解:【xml也可以使用css来修饰,使用pi(processing instrution:处理指令)】
<?xml-stylesheet type="text/css" href="classes.css" ?>
【DTD的主要用处】:是约束xml、html、xhtml等文件
【常用约束技术】:
1.【dtd】:document type definition;2. 【Schema】
【xml引入dtd】
1.内部DTD文档:<!DOCTYPE 根元素 [定义内容]>
2.外部DTD文档:<!DOCTYPE 根元素 SYSTEM "DTD文件路径">
3.内外部DTD文档结合:<!DOCTYPE 根元素 SYSTEM "DTD文件路径" [定义内容]>
=======================================
【校验xml】:checkDTD.html
<html> <head> <title>测试dtd</title> <meta http-equiv="content-type" content="text/content; charset:utf-8" /> <script language="javascript"> <!-- //创建一个xml解析器 var xmldoc = new ActiveXObject("Microsoft.XMLDOM"); //开启校验功能 xmldoc.validateOnParse = true; //指定对哪个xml文件校验 xmldoc.load("classes2.xml"); //如果有错误信息,则输出 document.write("错误信息:"+xmldoc.parseError.reason+"<br />"); document.write("错误行数:"+xmldoc.parseError.line); //--> </script> </head> </html>
=======================================
【DTD规范:】
注:(#PCATA):只能有文本,不能再包含子元素
注:EMPTY:不能包含子元素和文本
注:ANY:可以包含DTD中定义的任何元素
<!ELEMENT 班级 (学生+)>
<!ELEMENT 学生 (名字, 年龄, 介绍)>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ELEMENT 介绍 (#PCDATA)>
【DTD修饰符:】
?:0到1
+:1到多
*:0到多
|:表示选择
,:表示元素出现的顺序
():给元素分组
===【元素属性列表说明】===
【基本语法】
<!ATTLIST 元素名字
属性名 属性类型 属性的特点
属性名 属性类型 属性的特点
>
【属性类型】
CDATA:表示属性值是字符或者数字
ID:属性值是唯一的,字母开头
IDREF/IDREFS:id引用
Enumeruted:枚举 (a|b|c)必须选一个
ENTITY/ENTITIES:实体,分为引用实体和参数实体。(xml中:&实体名;)
<!ENTITY 实体名 "内容">
<!ENTITY % 参数实体名 "定义过的元素">
【属性的特点】
#REQUIRED:该属性必须有
#IMPLIED:该属性可以有可以没有
#FIXED value:该属性的值是固定值
#DEFAULT value:默认值
==============================================