python生成xml时规定dtd实例方法


Posted in Python onSeptember 21, 2020

一、DTD文档的声明及引用

1.内部DTD文档

<!DOCTYPE 根元素 [定义内容]>

2.外部DTD文档

引入外部的DTD文档分为两种:

(1)当引用的DTD文件是本地文件的时候,用SYSTEM标识,并写上”DTD的文件路径”,如下:

<!DOCTYPE 根元素 SYSTEM "DTD文件路径">

(2)如果引用的DTD文件是一个公共的文件时,采用PUBLIC标识,如下方式:

<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文件的URL">

比如下例:

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/ 
web-app_2_3.dtd">

二、DTD基本语法:

<!ELEMENT NAME CONTENT>

其中:

- ELEMENT是关键字,是不能修改的

- NAME表示元素名称

- CONTENT是元素类型,必须要大写!CONTENT的内容有三种写法:

(1)EMPTY——表示该元素不能包含子元素和文本,但可以有属性。

(2)ANY——表示该元素可以包含任何在该DTD中定义的元素内容

(3)#PCDATA——可以包含任何字符数据,但是不能在其中包含任何子元素

三、DTD元素的组合类型:

DTD中这样规定:

<!ELEMENT 家庭(人+,家电*)>

这个DTD规定了家庭元素中可以有1到多个”人”这个子元素,也可以有0到多个”家电”这个子元素。其中的加号”+”和星号”*”的含义与正则表达式中的含义一致。

XML这样写:

<家庭>
    <人 名字="张晓明" 性别="男" 年龄="25"/>
    <人 名字="李小钢" 性别="男" 年龄="36" 爱好="作个教育家和伟人"/>
    <家电 名称="彩电" 数量="3"/>
</家庭>

关于组合类型,有下述的的修饰符可以使用:

python生成xml时规定dtd实例方法

四、属性定义

DTD中属性的定义是这样的:

<!ATTLIST 元素名称
    属性名称 类型 属性特点
    属性名称 类型 属性特点......  
>

其中,属性的类型有下面5种:

(1) CDATA
(2) ID
(3) IDREF/IDREFS
(4) Enumerated
(5) ENTITY/ENTITIES

属性的特点有如下4种:

(1) #REQUIRED,表示这个属性必须给,不给就报错
(2) #IMPLIED,表示这个属性可以给也可以不给
(3) #FIXED value,表示这个属性必须给一个固定的value值
(4) Default value,表示这个属性如果没有值,就分配一个默认的value值

到此这篇关于python生成xml时规定dtd实例方法的文章就介绍到这了,更多相关python 生成xml时如何规定dtd内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python程序与服务器连接的WSGI接口
Apr 29 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
浅谈python 线程池threadpool之实现
Nov 17 Python
python中文乱码不着急,先看懂字节和字符
Dec 20 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 Python
Python运算符+与+=的方法实例
Feb 18 Python
Python中的特殊方法以及应用详解
Sep 20 #Python
matplotlib 三维图表绘制方法简介
Sep 20 #Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 #Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 #Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 #Python
python中random.randint和random.randrange的区别详解
Sep 20 #Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
Sep 20 #Python
You might like
PHP 程序授权验证开发思路
2009/07/09 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
Three.js基础部分学习
2017/01/08 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
Python随机生成数模块random使用实例
2015/04/13 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
Unix如何添加新的用户
2014/08/20 面试题
网络工程师职业规划
2014/02/10 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
实习单位推荐信
2015/03/27 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
生日宴会家属答谢词
2015/09/29 职场文书