`
lg_asus
  • 浏览: 184303 次
  • 性别: 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简单,功能上也相对较弱
分享到:
评论

相关推荐

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

    在Eclipse中导入dtd和xsd文件,使XML自动提示 DTD 类型约束文件 1. Window-&gt;Preferences-&gt;XML-&gt;XML Catalog-&gt;User Specified Entries窗口中,选择Add 按纽 2.在Add XML Catalog Entry 对话框中选择或输入以下...

    xml dtd xsd 标准格式

    xml dtd xsd 的编写 标准格式可以供学习参考用

    DTD文件和XSD文件

    struts-2.0/2.1.dtd struts-config.dtd ........ web-app_2_3.dtd web-app_2_4.xsd

    xm-DTD&XSD;测试文件

    一个dtd和xsd文档和对应的xml文件,仅供学习参考 一个dtd和xsd文档和对应的xml文件,仅供学习参考

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

    初级WEB编程技术内容, 包括css.dtd.xsd.xml及实验报告封面的xml编写程序

    XML转XSD\DTD工具

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

    dtd文件范例

    各种dtd文件范例 各种dtd文件范例 各种dtd文件范例

    hibernate-dtd-xsd约束文件

    hibernate的xsd和dtd约束文件合集;

    XML大作业 图书馆xml dtd xsl xsd有效性检测 算平均值

    XML大作业 图书馆xml dtd xsl xsd 有效性检测 算平均值 DOM解析 等 内含源代码 截图显示

    dtd_xsd.zip

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

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

    xml做的,超级简单的,通讯录! 下了看看吧~

    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|...

    xml与DTD,xml与DTD

    xml与DTD,xml与DTD,xml与DTD,xml与DTD

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

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

    使用DTD验证XML文档

    使用DTD验证XML文档 一、 DTD的定义: a) DTD是Document Type Defintion的缩写,即文档类型定义。DTD用来描述XML文档的结构。...c) DTD使应用程序可以使用一个标准DTD校验从外部接收的XML数据是否有效。

    XML DTD XSD,解压后有14M

    上课的实例,我觉得很不错。是在eclipse里面写的

    DTD 总结 DTD 总结 DTD 总结

    DTD 总结 QQ:292258449 DTD 总结DTD 总结

    XML-DTD实例讲解

     DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。XML文件中的元素,即我们所创建的标记,是根据我们应用的实际...

    这个是配置mybatis的配置的其中一个mapper.dtd

    这个是我今天学的一个Java里面mybatis的主配置中的其中一个包,由于软件问题,只可以传一个,这是接上一个config.dtd的mapper.dtd,这个下载了,记得解压,这个是mapper.dtd还有一个config,等会发下一个教程和代码,...

    XSD(XML Schemas Definition)

    XML Schema 是DTD的替代...文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。

Global site tag (gtag.js) - Google Analytics