xml 简单学习总结

1、申明xml
<?xml version=1.0 encoding="UTF-8?>


2、引入外部样式表


<?xml-sheetstyle type="text/css" href="c.css" ?>


3、自定义实体


 <!DOCDYPE
  ROOT[
  <!ENTITY entityName  entityValue>
  ]
 >


 eg:


 <!DOCTYPE root[
    <!ENTITY name "tom">
 ]>


 4、编写dtd


  DTD的目的:
验证该xml文档是否是有效的xml文档
如果一个良构的xml文档满足了DTD的声明就是一个有效的xml文档。
注意:良构 不一定  有效,但是有效一定良构
  DTD对xml文件中元素的约束:
格式:<!ELEMENT  元素名 (内容模式)>


<!ELEMENT students (stu*)>
    <!ELEMENT stu (#PCDATA|id|name|age)*>




内容模式:
empty
1).EMPTY:元素不能包含子元素和文本(空元素)
例如:
dtd文件:
<!ELEMENT students (stu)>
<!ELEMENT stu EMPTY>
xml文件:
<students>
<!--这个stu元素中的内容必须为空-->
<stu></stu>
</students>


2).(#PCDATA):可以包含任何字符数据,但是不能在其中包含任何子元素
例如:
dtd文件:
<!ELEMENT students (stu)>
<!ELEMENT stu (#PCDATA)>
xml文件:
<students>
<stu>tom</stu>
</students>


3).ANY:元素内容为任意的,主要是使用在元素内容不确定的情况下
例如:
dtd文件:
<!ELEMENT students (stu)>
<!ELEMENT stu ANY>
xml文件:
<students>
<stu>tom</stu>
</students>
或者
<students>
<stu>
<name>tom</name>
</stu>
</students>


修饰元素内容的
()  用来对元素的内容分组
|  或
+  1 n
*  0 n
?  1或者0
,  按照顺序
默认修饰符  有且仅有一个






属性约束:
    <!ATTLIST 元素名称
属性名称    值类型    属性特点
属性名称    值类型    属性特点
>
   <!ELEMENT students (stu*)>
<!ELEMENT stu (#PCDATA)>
<!ATTLIST stu
id   CDATA #REQUIRED
    name CDATA #REQUIRED
>






  1、值类型:




1).CDATA:属性值可以是任何字符(包括数字和中文)


2).ID:属性值必须唯一,属性值必须满足xml命名规则


3).IDREF/IDREFS
IDREF属性的值指向文档中其它地方声明的ID类型的值。
IDREFS同IDREF,但是可以具有由空格分开的多个引用。


4).enumerated:(枚举值1|枚举值2|枚举值3...),属性值必须在枚举值中
例如:
dtd文件:
<!ELEMENT students (stu*)>
<!ELEMENT stu (#PCDATA)>
<!ATTLIST stu
id     ID     #REQUIRED
name   CDATA  #REQUIRED
gender (男|女)  #REQUIRED
>




  2、属性特点:
    1).#REQUIRED:元素的所有实例都必须有该属性
例如:
dtd文件:
<!ELEMENT students (stu*)>
<!ELEMENT stu (#PCDATA)>
<!ATTLIST stu
name   CDATA   #REQUIRED
>
xml文件:
<students>
<stu name=""></stu>
<stu name="tom"></stu>
</students>
注意:
1. name属性必须出现
2. name属性的值可以为空也可以不为空


2).#IMPLIED :属性可以不出现
例如:
dtd文件:
<!ELEMENT students (stu*)>
<!ELEMENT stu (#PCDATA)>
<!ATTLIST stu
name   CDATA   #IMPLIED
>
xml文件:
<students>
<stu name=""></stu>
<stu name="tom"></stu>
<stu></stu>
</students>
注意:
1. name属性可以出现也可以不出现
2. name属性的值可以为空也可以不为空


3).default-value:属性可以不出现,并且当它不出现的时候是有默认值的,而该属性的默认值就是atttibute-value
例如:
dtd文件:
<!ELEMENT students (stu*)>
<!ELEMENT stu (#PCDATA)>
<!ATTLIST stu
name   CDATA   "tom"
>
xml文件:
<students>
<stu name="zhangsan"></stu>
<stu></stu>
</students>
注意:
1. name属性可以出现也可以不出现
2. name属性如果不出现则默认值为tom


4).#FIXED :属性可以不出现,但是如果出现的话必须是指定的属性值
例如:
dtd文件:
<!ELEMENT students (stu*)>
<!ELEMENT stu (#PCDATA)>
<!ATTLIST stu
name   CDATA   #IMPLIED
school CDATA   #FIXED "briup"
>
xml文件:
<students>
<stu school="briup"></stu>
<stu></stu>
</students>
注意:
1. name/school属性可以出现也可以不出现
2. school属性如果出现那么值一定要是briup




引入外部dtd


<!DOCDYPE  root public id url  >
<!DOCDYPE  root system path>


内部dtd
<!DOCTYPE root[
<!--约束元素  element-->
<!ELEMENT root (test+)>
<!ELEMENT test  (id)>
]>
混合dtd
<!DOCTYPE root SYSTEM "../dtd/dtdTest1.dtd"[
<!ELEMENT test  (name)>
]>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值