xml编程_dtd内部(外部)_元素_修饰符_属性_实体定义_ide

作者: 鲁智深 分类: PHP 发布时间: 2015-08-20 14:11

内部DTD文档

在xml文件中引入dtd文件的3种方式

1
2
3
4
5
6
7
8
9
<!--引入dtd文档-->
<!DOCTYPE bj [
    <!ELEMENT bj (stu+)>
    <!ELEMENT stu (name,sex,age,img)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT sex (#PCDATA)>
    <!ELEMENT age (#PCDATA)>
    <!ELEMENT img (#PCDATA)>
]>

外部DTD文档

1
<!DOCTYPE bj SYSTEM "mydtd.dtd">

内外部DTD文档结合

1
2
3
4
5
6
7
8
9
<!--引入dtd文档-->
<!DOCTYPE bj SYSTEM "mydtd.dtd" [
        <!ELEMENT bj (stu+)>
    <!ELEMENT stu (name,sex,age,img)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT sex (#PCDATA)>
    <!ELEMENT age (#PCDATA)>
    <!ELEMENT img (#PCDATA)>
]>

DTD语法元素

内容有3种规范:

1、EMPTY该元素不能包含子元素和文本,但可以有属性-(空元素)

1
<!ELEMENT sex EMPTY>

2、ANY该元素可以包含任何在DTD中定义的元素内容

1
<!ELEMENT sex ANY>

3、#PCDATA可以包含任何字符数据,但是不能在其中包含任何元素其它类型组合

1
<!ELEMENT sex (#PCDATA)>

组合类型示例

元素修饰符

修饰符

修饰符

dtd属性

元素属性列表说明

基本语法

1
2
3
4
<!ATTLIST 元素名称
属性名 属性类型 属性特点
属性名 属性类型 属性特点
>

属性类型:

CDTATA:表示属性值可以是字符或者数字

ID:属性值是唯一的,字母开通,不能数字开头

IDREF/IDREFS:用法:IDREF值为另外一个元素的 id,IDREFS值为其他 id 的列表

Enumenated:枚举

ENTITY/ENTITIES:实体

属性特点:

#REQUIRED:该属性必须有

#IMPLIED:该属性可以有可以没有

#FIXED value:该属性值是固定值

DEFAULT value:默认值

二、实体定义

实体用于为一段内容创建一个别名,以后字xml文档中就可以使用别名引用这段内容了

在DTD定义中,用语句用于定义一个实体。

实体分为两种类型:引用实体和参数实体。

1、引用实体(目前浏览器不支持)

①在dtd中定义引用实体

②在xml文件中引用实体

2、参数实体

在dtd中自己使用

三、ide开发

使用zend studio 可以更加快速的开发我们的xml文件和dtd文件

xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<!--引入dtd文档-->
<!DOCTYPE bj SYSTEM "mydtd.dtd">
    <bj>
    <stu zhuzhi="kangkang" dage="a002 a003" xuehao="a001" hunyin="lihun" guoji="china">
    <name>孙悟空</name>
    <sex></sex>
    <age>18</age>
    <img><![CDATA[$^&()]]></img>
    </stu>
    <stu zhuzhi="taiwang"  dage="a002" xuehao="a002" hunyin="lihun">
    <name>白骨精</name>
    <sex></sex>
    <age>180</age>
    <img><![CDATA[$^&()3423423423]]></img>
    </stu>
    <stu zhuzhi="taiwang" dage="a002" xuehao="a003" hunyin="lihun">
    <name>猪八戒</name>
    <sex></sex>
    <age>1800</age>
    <img><![CDATA[$^&()3423423423]]></img>
    </stu>
    </bj>

dtd文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!ELEMENT bj (stu+)>
<!---参数实体-->
<!ENTITY % sName "name">
<!ATTLIST stu
          zhuzhi CDATA #REQUIRED
          xuehao ID #REQUIRED
          dage IDREFS #REQUIRED
          hunyin (jiehun|weihun|lihun) #REQUIRED
          guoji CDATA #FIXED "china"
>
<!ELEMENT stu (%sName;,sex,age,img)>
<!ELEMENT %sName; (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT img (#PCDATA)>

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注