当前位置: 首页 > 编程笔记 >

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

史和泰
2023-03-14
本文向大家介绍python生成xml时规定dtd实例方法,包括了python生成xml时规定dtd实例方法的使用技巧和注意事项,需要的朋友参考一下

一、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"/>
</家庭>

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

四、属性定义

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 ElementTree 生成 xml的实例,包括了利用 Python ElementTree 生成 xml的实例的使用技巧和注意事项,需要的朋友参考一下 Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree。 首先 import 之: from xml.etree import ElementTree

  • 问题内容: 我们正在开发一个涉及大量XML转换的应用程序。我们本身没有任何适当的输入测试数据,只有DTD或XSD文件。我们希望自己从这些文件中生成测试数据。有没有简单/免费的方法可以做到这一点? 编辑 显然没有免费的工具,我也同意OxygenXML是最好的工具之一。 问题答案: 在Visual Studio 2008 SP1和更高版本中,XML Schema Explorer可以使用一些基本的示例

  • 问题内容: 我想知道是否有一种方法可以在我拥有数据和标签的情况下自动从XSD架构生成XML文件。我想在python / java中做到这一点。似乎很有可能,但是我找不到任何允许我执行此操作的库。我正在寻找一个相当快速的解决方案。 问题答案: 查看适用于与JAXB相似的Python工具的pyXSD。 XSD用于创建Python类。Python对象用于发出XML。

  • 问题内容: 我需要从程序中的.als生成随机的.xml实例。我设法通过在后台(不可见的JFrame)中运行Alloy并调用doOpen,doExecuteLatest和doShowLatest函数来做到这一点。但是每次我运行代码时都必须等待合金启动,这很痛苦。我认为,如果我只使用执行此过程的Alloy代码段(我想那将是kodkod)会更有效。有谁知道这是怎么做到的吗?我发现Alloy的代码非常混乱

  • 本文向大家介绍c#递归生成XML实例,包括了c#递归生成XML实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了c#递归生成XML的方法。分享给大家供大家参考。具体实现方法如下: 这里结合网上搜到的资料,写了个递归生成xml,经过调试可以使用,数据库结构如下图所示: 代码如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍Android中常用的XML生成方法实例分析,包括了Android中常用的XML生成方法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android中常用的XML生成方法。分享给大家供大家参考。具体如下: 1. java代码: 2. java ben: 3. 调用方法: 希望本文所述对大家的Android程序设计有所帮助。