一个xml的格式如下,
<?xml version="1.0"?>
<!-- 本文档根元素为gridbag, 其中验证文档为gridbag.dtd -->
<!DOCTYPE gridbag SYSTEM "gridbag.dtd">
<gridbag>
<row>
<cell anchor="EAST">
<bean>
<class>javax.swing.JLabel</class>
<property>
<name>text</name>
<value><string>Face:</string></value>
</property>
</bean>
</cell>
<cell fill="HORIZONTAL" weightx="100">
<bean id="face">
<class>javax.swing.JComboBox</class>
</bean>
</cell>
<cell gridheight="4" fill="BOTH" weightx="100" weighty="100">
<bean id="sample">
<class>javax.swing.JTextArea</class>
<property>
<name>text</name>
<value><string>The quick brown fox jumps over the lazy dog</string></value>
</property>
<property>
<name>editable</name>
<value><bolean>false</bolean></value>
</property>
<property>
<name>lineWrap</name>
<value><boolean>true</boolean></value>
</property>
<property>
<name>border</name>
<value>
<bean>
<class>javax.swing.border.EtchedBorder</class>
</bean>
</value>
</property>
</bean>
</cell>
</row>
<row>
<cell gridwidth="2" weighty="100">
<bean id="bold">
<class>javax.swing.JCheckBox</class>
<property>
<name>text</name>
<value><string>Bold</string></value>
</property>
</bean>
</cell>
</row>
<row>
<cell gridwidth="2" weighty="100">
<bean id="italic">
<class>javax.swing.JCheckBox</class>
<property>
<name>text</name>
<value><string>Italic</string></value>
</property>
</bean>
</cell>
</row>
</gridbag>
,对就在的dtd文件格式:
<!ELEMENT gridbag (row)*> <!--根元素是gridbag,可以多个子元素row-->
<!ELEMENT row(cell)*> <!--row下面可以有多个cell子元素 -->
<!ELEMENT cell(bean)> <!--cell元素下只有一个bean元素-->
<!ATTLIST cell gridx CDATA #IMPLIED> <!--cell有gridx属性,类型为任意文本,如果有特殊字符用相应的替代字符代替(用于属性中),可选-->
<!ATTLIST cell gridy CDATA #IMPLIED>
<!ATTLIST cell gridwidth CDATA "1"> <!--gridwidhth属性默认为1-->
<!ATTLIST cell gridheight CDATA "1">
<!ATTLIST cell weightx CDATA "0">
<!ATTLIST cell weighty CDATA "0">
<!ATTLIST cell fill (NODE|BOTH|HORIZONTAL|VERTICAL) "NONE"> <!--fill属性有几个可选值,默认为NONE-->
<!ATTLIST cell anchor (CENTER|NORTH|NORTHEAST|EAST|SOUTHEAST|SOUTH|SOUTHWEST|WEST|NORTHWEST) “CENTER”>
<!ATTLIST cell ipdx CDATA "0">
<!ATTLIST cell ipady CDATA "0">
<!ELEMENT bean (class, property*)> <!--bean子元素有一个class子元素,多个property子元素-->
<!ATTLIST bean id ID #IMPLIED> <!--bean的id属性是ID类型,也就是唯一性 -->
<!ELEMENT class (#PCDATA)> <!--class元素下面可以只包含文本也可以包含子元素,类似于ANY(用于元素中)-->
<!ELEMENT property (name, value)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT value (int|string|boolean|bean)>
<!ELEMENT int (#PCDATA)>
<!ELEMENT string (#PCDATA)>
<!ELEMENT boolean (#PCDATA)>
XSD文件格式如下
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="gridbag" type="GridBagType"/><!--根元素-->
<xsd:element name="bean" type="BeanType"/>
<xsd:complexType name="GridBagType">
<xsd:sequence>
<xsd:element name="row" type="RowType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RowType">
<xsd:sequence>
<xsd:element name="cell" type="CellType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CellType">
<xsd:sequence>
<xsd:element ref="bean"></xsd:element>
</xsd:sequence>
<xsd:attribute name="gridx" type="xsd:int" use="optional"/>
<xsd:attribute name="gridy" type="xsd:int" use="optional"></xsd:attribute>
<xsd:attribute name="gridwidth" type="xsd:int" use="optional" default="1"></xsd:attribute>
<xsd:attribute name="gridheight" type="xsd:int" use="optional" default="1"/>
<xsd:attribute name="weightx" type="xsd:int" use="optional" default="0"/>
<xsd:attribute name="weighty" type="xsd:int" use="optional" default="0"/>
<xsd:attribute name="fill" use="optional" default="NONE">
<xsd:simpleType>
<xsd:retriction base="xsd:string">
<xsd:enumeration value="NONE"/>
<xsd:enumeration value="BOTH"/>
<xsd:enumeration value="HORIZONTAL"/>
<xsd:enumeration value="VERTICAL"></xsd:enumeration>
</xsd:retriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="anchor" use="optional" default="CENTER">
<xsd:simpleType>
<xsd:retriction base="xsd:string">
<xsd:enumeration value="CENTER"></xsd:enumeration>
<xsd:enumeration value="NORTH"/>
<!-- 下面的类同 -->
</xsd:retriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="ipady" type="xsd:int" use="optional" default="0"></xsd:attribute>
<xsd:attribute name="ipadx" type="xsd:int" use="optional" default="0"/>
</xsd:complexType>
<xsd:complexType name="BeanType">
<xsd:sequence>
<xsd:element name="class" type="xsd:string"/>
<xsd:element name="property" type="PropertyType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attibute name="id" type="xsd:ID" use="optional"></xsd:attibute>
</xsd:complexType>
<xsd:complexType name="PropertyType">
<xsd:sequence>
<xsd:element name="name" tyype="xsd:string"/>
<xsd:element name="value" type="ValueType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType>
<xsd:choice>
<xsd:element ref="bean"/>
<xsd:element name="int" type="xsd:int"/>
<xsd:element name="string" type="xsd:string"/>
<xsd:element name="boolean" type="xsd:boolean"/>
</xsd:choice>
</xsd:complexType>
</xsd:schema>
DTD比XSD简单,功能上也相对较弱
分享到:
相关推荐
在给定的压缩包文件中,我们看到的是与Java Web开发框架Struts 2和Servlet容器相关的DTD和XSD文件。 首先,让我们了解DTD和XSD的基本概念: 1. DTD(Document Type Definition):DTD是一种早期的XML文档结构定义...
这个XSD定义了一个`book`元素,它包含`title`、`author`和`year`三个子元素,`title`和`author`都是字符串类型,而`year`则必须是符合XML日期时间标准的年份。 3. 使用和比较:DTD和XSD都可以用来验证XML文档是否...
- **版本兼容性**:确保导入的DTD或XSD文件版本与XML文档相匹配,避免因版本不一致导致的问题。 - **环境变量**:如果DTD或XSD文件路径较长或位于网络位置,考虑使用环境变量简化路径。 - **性能优化**:对于大型...
与DTD相比,XSD提供了更多元化的数据类型,如日期、浮点数等,并且可以定义元素之间的关系,如顺序、选择或混合内容。例如,一个XSD文件可能会定义一个元素`<employee>`,它必须包含一个`<name>`子元素和一个`...
接着,XSD文件是XML Schema的定义,它是DTD的一个更现代、功能更丰富的替代品。XSD提供了更强大的数据类型支持,更复杂的模式规则,以及对命名空间的支持。在Hibernate 4.0版本中,`hibernate-mapping-4.0.xsd`和`...
例如,一个简单的DTD可能会定义一个新闻文章的结构,包括标题、作者和日期等元素。使用<!DOCTYPE>声明,可以在XML文档开头引用DTD,以验证文档是否符合定义的结构。 XSD,即XML Schema Definition,是XML的另一种...
在"老师上课的例子"这个压缩包中,可能包含了一些使用XML、DTD和XSD的实例,可能是关于如何定义和使用这些技术的具体示例。这些例子可能涉及了XML的元素、属性和命名空间,DTD的元素声明、属性声明和实体引用,以及...
标题中的“通讯录源码XML+CSS+DTD+XSD”揭示了这是一个使用XML(可扩展标记语言)、CSS(层叠样式表)以及DTD(文档类型定义)和XSD(XML Schema定义)来构建的通讯录应用的源代码。下面我们将深入探讨这些技术及其...
XML转XSD\DTD工具 W3C XML Schema XSD 工具
DTD是早期的XML文档验证方法,与XSD类似,用于定义XML文档的结构。但相比XSD,DTD功能较为有限,不支持复杂的数据类型和命名空间。 8. **DTD 示例** 以下是一个简单的DTD定义,描述了上面的订单结构: ```xml ...
DTD,全称是Document Type Definition,它是XML(可扩展标记语言)文档的一个重要组成部分,用于定义XML文档的结构和元素。DTD定义了元素、属性、实体以及元素间的关系,确保XML文档遵循一定的规则,从而提高了数据...
在"DTD-xsd.zip"这个压缩包文件中,可能包含了Dubbo配置文件所需的一系列DTD和XML Schema Definition (XSD) 文件。XSD是另一种更现代且功能更强大的XML语法规则定义工具,它可以提供更严格的类型检查和数据约束。与...
其次解决编译依赖问题的投资回报率过低,在一个依赖关系已经十分“盘根错节”的项目中试图解决其依赖问题显然需要投入大量的人力和时间成本。在问题得到解决后,你自认为一切都已经步入正轨,却突然发现刚刚提交的新...
MyBatis是一个流行的Java持久层框架,它简化了与数据库交互的过程,允许开发者将SQL语句直接写在XML配置文件中。在这个特定的场景中,我们关注的是"Mybatis-dtd",即MyBatis框架中使用的DTD(Document Type ...
"config"这个文件名可能是压缩包内的一个配置文件,它可能包含了与DTD相关的配置信息,如DTD的路径、默认设置或者解析器的设置等。配置文件通常用于定制程序的行为,以适应不同的环境或需求。 在实际应用中,开发者...
然后打开eclipse ->Window->prefenrence->XML->XML Catalog->User Specifiled Entreis->Add->Location(此处是你放dtd文件的位置例如:D:\mybatis\mybatis-3-config.dtd)->Key(如果更改config,此处应该是:-//...
输入java -jar trang.jar person.xml person.xsd(trang.jar 接受两个参数,第一个为源文件,第二个为目标文件) ok!你可以看到在 d:\trang下就生成了 person.xsd 文件 Trang的执行: java -jar trang.jar -I rng|...
例如,如果我们有一个名为`book.xml`的XML文档,其根元素为`book`,并且我们有一个名为`book.dtd`的外部DTD文件,我们的`<!DOCTYPE>`声明将是: ```xml <!DOCTYPE book SYSTEM "book.dtd"> ``` 关联外部DTD后,...
下面将详细阐述这四个框架与DTD的关系以及相关的知识点。 1. Struts DTD:Struts是Apache基金会的一个开源MVC框架,它的配置文件`struts-config.xml`和`web.xml`可能会引用DTD来定义其结构。例如,`struts-config....