javaweb-day01-3(XML 的 dtd 约束)

2024-09-07 16:08
文章标签 java xml web day01 约束 dtd

本文主要是介绍javaweb-day01-3(XML 的 dtd 约束),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

XML 的约束方式有两种:dtd 和 schema


 DTD约束:


Document Type Definition    文档类型定义、文档类型界定。


入门示例:


book.xml :

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架><书><书名>Java就业培训教程</书名><作者>张孝祥</作者><售价>39.00元</售价></书><书><书名>JavaScript网页开发</书名><作者>张孝祥</作者><售价>28.00元</售价></书>
</书架>

xml文档里面有中文时,记事本软件默认使用gb2312编码来保存到硬盘,所以我们在encoding里写gb2312来通知浏览器解析引擎使用gb2312来打开此XML文档。



book.dtd :

<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
PCDATA :parse chracter data  可解析的字符串。

DTD文件必须指定 UTF-8 或 Unicode 编码保存。

如果使用其他编码保存,那么使用这份dtd文档约束的所有XML文档将打不开。


校验:

1.  用Google chrome 打开book.xml,可以校验此xml文档是否符合指定的dtd约束文档的规定,错误出在哪里都会有提示。

2.  IE浏览器没有自动校验功能,实际上IE5以上浏览器内置了XML解析工具:Microsoft.XMLDOM,可以编写javascript代码,利用这个解析工具装载xml文件,并对这个文件进行dtd验证。

  1. 创建解析器对象:var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
  2. 开启校验开关:    xmldoc.validateOnParse = "true";
  3. 装载xml文档:      xmldoc.load("book.xml");
  4. 获取错误信息:    xmldoc.parseError.reason;     xmldoc.parseError.line;                 

validate.html :

<html>
<head>
<script>
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.validateOnParse = "true";
xmldoc.load("book.xml");
document.write("错误信息:"+xmldoc.parseError.reason+"<br/>");
document.write("错误行号:"+xmldoc.parseError.line);
</script>
</head><body>
</body>
</html>
用IE浏览器打开此 validate.html 校验文档,会显示错误信息和行号:

错误信息:
错误行号:0  











这篇关于javaweb-day01-3(XML 的 dtd 约束)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145521

相关文章

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Spring Cloud LoadBalancer 负载均衡详解

《SpringCloudLoadBalancer负载均衡详解》本文介绍了如何在SpringCloud中使用SpringCloudLoadBalancer实现客户端负载均衡,并详细讲解了轮询策略和... 目录1. 在 idea 上运行多个服务2. 问题引入3. 负载均衡4. Spring Cloud Load

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为