`
lg_asus
  • 浏览: 190798 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

DTD与XSD的一个范例

    博客分类:
  • XML
 
阅读更多
一个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简单,功能上也相对较弱
分享到:
评论

相关推荐

    DTD文件和XSD文件

    在给定的压缩包文件中,我们看到的是与Java Web开发框架Struts 2和Servlet容器相关的DTD和XSD文件。 首先,让我们了解DTD和XSD的基本概念: 1. DTD(Document Type Definition):DTD是一种早期的XML文档结构定义...

    xml dtd xsd 标准格式

    这个XSD定义了一个`book`元素,它包含`title`、`author`和`year`三个子元素,`title`和`author`都是字符串类型,而`year`则必须是符合XML日期时间标准的年份。 3. 使用和比较:DTD和XSD都可以用来验证XML文档是否...

    在Eclipse中导入dtd和xsd文件,使XML自动提示

    - **版本兼容性**:确保导入的DTD或XSD文件版本与XML文档相匹配,避免因版本不一致导致的问题。 - **环境变量**:如果DTD或XSD文件路径较长或位于网络位置,考虑使用环境变量简化路径。 - **性能优化**:对于大型...

    xm-DTD&XSD;测试文件

    与DTD相比,XSD提供了更多元化的数据类型,如日期、浮点数等,并且可以定义元素之间的关系,如顺序、选择或混合内容。例如,一个XSD文件可能会定义一个元素`&lt;employee&gt;`,它必须包含一个`&lt;name&gt;`子元素和一个`...

    hibernate-dtd-xsd约束文件

    接着,XSD文件是XML Schema的定义,它是DTD的一个更现代、功能更丰富的替代品。XSD提供了更强大的数据类型支持,更复杂的模式规则,以及对命名空间的支持。在Hibernate 4.0版本中,`hibernate-mapping-4.0.xsd`和`...

    WEB编程技术_css.dtd.xsd.xml及报告封面的xml编写

    例如,一个简单的DTD可能会定义一个新闻文章的结构,包括标题、作者和日期等元素。使用&lt;!DOCTYPE&gt;声明,可以在XML文档开头引用DTD,以验证文档是否符合定义的结构。 XSD,即XML Schema Definition,是XML的另一种...

    XML DTD XSD,解压后有14M

    在"老师上课的例子"这个压缩包中,可能包含了一些使用XML、DTD和XSD的实例,可能是关于如何定义和使用这些技术的具体示例。这些例子可能涉及了XML的元素、属性和命名空间,DTD的元素声明、属性声明和实体引用,以及...

    通讯录源码XML+CSS+DTD+XSD

    标题中的“通讯录源码XML+CSS+DTD+XSD”揭示了这是一个使用XML(可扩展标记语言)、CSS(层叠样式表)以及DTD(文档类型定义)和XSD(XML Schema定义)来构建的通讯录应用的源代码。下面我们将深入探讨这些技术及其...

    XML转XSD\DTD工具

    XML转XSD\DTD工具 W3C XML Schema XSD 工具

    XML的使用方式示列(xsl、xsd、dtd等)

    DTD是早期的XML文档验证方法,与XSD类似,用于定义XML文档的结构。但相比XSD,DTD功能较为有限,不支持复杂的数据类型和命名空间。 8. **DTD 示例** 以下是一个简单的DTD定义,描述了上面的订单结构: ```xml ...

    dtd文件范例

    DTD,全称是Document Type Definition,它是XML(可扩展标记语言)文档的一个重要组成部分,用于定义XML文档的结构和元素。DTD定义了元素、属性、实体以及元素间的关系,确保XML文档遵循一定的规则,从而提高了数据...

    Dubbo配置文件依赖的本地DTD

    在"DTD-xsd.zip"这个压缩包文件中,可能包含了Dubbo配置文件所需的一系列DTD和XML Schema Definition (XSD) 文件。XSD是另一种更现代且功能更强大的XML语法规则定义工具,它可以提供更严格的类型检查和数据约束。与...

    dtd_xsd.zip

    其次解决编译依赖问题的投资回报率过低,在一个依赖关系已经十分“盘根错节”的项目中试图解决其依赖问题显然需要投入大量的人力和时间成本。在问题得到解决后,你自认为一切都已经步入正轨,却突然发现刚刚提交的新...

    mybatis-dtd约束文件

    MyBatis是一个流行的Java持久层框架,它简化了与数据库交互的过程,允许开发者将SQL语句直接写在XML配置文件中。在这个特定的场景中,我们关注的是"Mybatis-dtd",即MyBatis框架中使用的DTD(Document Type ...

    需要的DTD文件.rar

    "config"这个文件名可能是压缩包内的一个配置文件,它可能包含了与DTD相关的配置信息,如DTD的路径、默认设置或者解析器的设置等。配置文件通常用于定制程序的行为,以适应不同的环境或需求。 在实际应用中,开发者...

    mybatis-3-config/mapper.dtd 解决mybatis头文件报错

    然后打开eclipse -&gt;Window-&gt;prefenrence-&gt;XML-&gt;XML Catalog-&gt;User Specifiled Entreis-&gt;Add-&gt;Location(此处是你放dtd文件的位置例如:‪D:\mybatis\mybatis-3-config.dtd)-&gt;Key(如果更改config,此处应该是:-//...

    xml转xsd,trang.jar最新版

    输入java -jar trang.jar person.xml person.xsd(trang.jar 接受两个参数,第一个为源文件,第二个为目标文件) ok!你可以看到在 d:\trang下就生成了 person.xsd 文件 Trang的执行: java -jar trang.jar -I rng|...

    将DTD与XML文档相关联之外部DTD

    例如,如果我们有一个名为`book.xml`的XML文档,其根元素为`book`,并且我们有一个名为`book.dtd`的外部DTD文件,我们的`&lt;!DOCTYPE&gt;`声明将是: ```xml &lt;!DOCTYPE book SYSTEM "book.dtd"&gt; ``` 关联外部DTD后,...

    struts+spring+mybatis+hibernate的dtd文件

    下面将详细阐述这四个框架与DTD的关系以及相关的知识点。 1. Struts DTD:Struts是Apache基金会的一个开源MVC框架,它的配置文件`struts-config.xml`和`web.xml`可能会引用DTD来定义其结构。例如,`struts-config....

Global site tag (gtag.js) - Google Analytics