上接:JavaWeb学习总结笔记(1) 接着之前的开始写 dtd的三种引入方式: 引入外部的dtd文件 使用内部dtd文件 <!DOCTYPE 根元素名称 [ ]> 使用外部的dtd文件(网络上的dtd文件) dtd文件代码 xml文件代码 运行正常 可以看到dtd文件里面只有person、name、age三个标签,当我添加了一个标签,根标签那里会提示错误 The content of element type “person” must match “(name,age)”.(元素类型“人”的内容必须与“(姓名、年龄)”相匹配。) 表示xml里面只能使用规定好了的标签。 使用d 在JavaWeb开发中,XML(eXtensible Markup Language)是一种重要的数据交换格式,用于存储结构化数据。本文主要探讨了XML文档类型的定义(DTD,Document Type Definition)以及如何使用DTD来约束XML文档的结构和内容。以下是关于XML和DTD的一些关键知识点: 1. **DTD的引入方式**: - **引入外部的DTD文件**:通过`<!DOCTYPE 根元素名称 SYSTEM "dtd文件路径">`来引用,系统标识符("dtd文件路径")指向本地或网络上的DTD文件。 - **使用内部DTD文件**:在XML文档头部通过`<!DOCTYPE 根元素名称 [DTD定义]>`定义,所有DTD规则都在方括号内。 - **使用外部的DTD文件(网络上的)**:与引入外部文件类似,但使用公共标识符,如`<!DOCTYPE 根元素名称 PUBLIC "公共ID" "dtd文件URL">`。 2. **DTD中的元素定义**: - **简单元素**:没有子元素的元素,例如`<!ELEMENT name (#PCDATA)>`定义名为`name`的元素,其内容是字符串类型。 - **空元素**:定义为`<!ELEMENT element EMPTY>`,表示元素不允许有任何内容。 - **任何元素**:`<!ELEMENT element ANY>`允许元素包含任何在DTD中定义的子元素。 - **复杂元素**:有子元素的元素,如`<!ELEMENT person (name, age)>`定义`person`元素包含一个`name`子元素和一个`age`子元素,顺序很重要。 3. **元素数量的约束**: - `+`:表示元素至少出现一次,如`<!ELEMENT items (item+)>`表示`items`元素包含一个或多个`item`元素。 - `*`:元素可出现零次或多次,如`<!ELEMENT items (item*)>`。 - `?`:元素可出现零次或一次,如`<!ELEMENT items (item?)>`。 4. **属性定义**: - `CDATA`:定义属性类型为字符串,如`<!ATTLIST element attrName CDATA #REQUIRED>`。 - 枚举:限制属性值为预设的一组值,如`<!ATTLIST element attrName (a|b|c) #IMPLIED>`。 - `ID`:属性值必须是唯一的标识符,如`<!ATTLIST element attrName ID #IMPLIED>`。 - 属性约束:`#REQUIRED`表示属性必须存在,`#IMPLIED`表示可选,`#FIXED "value"`表示属性值必须是给定的固定值。 5. **实体定义**: - 实体定义允许我们在XML文档中使用符号引用,如`<!ENTITY SS "张飞">`,然后在文档中用`&SS;`引用。 - 实体可以在内部DTD中定义,如`<!DOCTYPE person [ <!ENTITY SS "张飞"> ]>`。 6. **实战应用**: - 根据给定的DTD实例创建XML文档,确保遵循DTD规定的元素结构和属性约束,例如创建一个符合`<!DOCTYPE NEWSPAPER []>`的`NEWSPAPER`元素,包括`PUBLISHER`、`COPYRIGHT`等子元素。 通过学习和实践,我们可以更好地理解和控制XML文档的结构,确保数据的准确性和一致性,这对于JavaWeb开发中的数据交换和处理至关重要。理解并熟练运用DTD可以帮助开发者编写更规范、更易于维护的XML文档。
- 粉丝: 2
- 资源: 961
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0