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运行效率
Jun 09 Python
详解Python多线程Selenium跨浏览器测试
Apr 01 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
python实现微信远程控制电脑
Feb 22 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
python实现汽车管理系统
Nov 30 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
Feb 26 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 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中使用与Perl兼容的正则表达式
2006/11/26 PHP
比较全面的PHP数组的使用方法小结
2010/09/23 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
常用的javascript设计模式
2017/01/11 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
jquery实现图片放大点击切换
2017/06/06 jQuery
vue-cli3 从搭建到优化的详细步骤
2019/01/20 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
内业资料员岗位职责
2014/01/04 职场文书
小学生安全保证书
2014/02/01 职场文书
寄语是什么意思
2014/04/10 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
优秀党员先进材料
2014/12/18 职场文书
客房领班岗位职责
2015/02/11 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
MySQL的join buffer原理
2021/04/29 MySQL
Python制作春联的示例代码
2022/01/22 Python