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的logging模块在stdout输出的两种方法
May 17 Python
win10下Python3.6安装、配置以及pip安装包教程
Oct 01 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
VSCode下好用的Python插件及配置
Apr 06 Python
PyQt5每天必学之拖放事件
Aug 27 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
python实现简单加密解密机制
Mar 19 Python
python网络编程:socketserver的基本使用方法实例分析
Apr 09 Python
Python如何转换字符串大小写
Jun 04 Python
Python中Yield的基本用法
Oct 18 Python
python 字典和列表嵌套用法详解
Jun 29 Python
Python echarts实现数据可视化实例详解
Mar 03 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+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
jquery ui resizable bug解决方法
2010/10/26 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
node.js文件操作系统实例详解
2019/11/05 Javascript
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
详解如何设置Python环境变量?
2019/05/13 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
python接口自动化框架实战
2020/12/23 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
食堂采购员岗位职责
2014/03/17 职场文书
保研推荐信
2014/05/09 职场文书
火灾现场处置方案
2014/05/28 职场文书
年检委托书
2014/08/30 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
培训后的感想
2015/08/07 职场文书
创业计划书之酒厂
2019/10/14 职场文书
使用 Apache 反向代理的设置技巧
2022/01/18 Servers
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis