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中操作符重载用法分析
Apr 29 Python
有趣的python小程序分享
Dec 05 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
Django Rest framework认证组件详细用法
Jul 25 Python
浅谈Pytorch中的torch.gather函数的含义
Aug 18 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
Python实现CNN的多通道输入实例
Jan 17 Python
Python 为什么推荐蛇形命名法原因浅析
Jun 18 Python
使用darknet框架的imagenet数据分类预训练操作
Jul 07 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
python实现简单的学生管理系统
Feb 22 Python
python中tkinter复选框使用操作
Nov 11 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文件中bom的PHP代码
2012/03/13 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
跟老齐学Python之??碌某?? target=
2014/09/12 Python
python sort、sorted高级排序技巧
2014/11/21 Python
学习python类方法与对象方法
2016/03/15 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
python简单区块链模拟详解
2019/07/03 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
运动会通讯稿100字
2014/01/31 职场文书
体育教学随笔感言
2014/02/24 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS