博客信息

mvc之DTD约束

发布时间:『 2019-02-25 06:10』  博客类别:自定义mvc  阅读(906)
1. 什么是格式良好XML
  1.1 有且只有一个根元素
  1.2 XML标签大小写正确区分
  1.3 正确使用结束标签
  1.4 正确嵌套标签
  1.5 使用了合法的标签名
  1.6 定义有效的属性


2. 在XML加入DTD声明
   <!DOCTYPE root[]>


3. 元素定义的语法
   <!ELEMENT element-name (type)>
   注:根标签也要定义!!!
                          

4. 元素的分类
   <!ELEMENT element-name EMPTY>//空元素
   <!ELEMENT element-name (#PCDATA)>//文本元素
   <!ELEMENT element-name (e1,e2)>//混合元素


5. 元素的限制
   , 顺序
   | 或者
   次数: +, 1~n
         *, 0~n
         ?, 0或1
       没有


6. 属性定义的语法
   <!ATTLIST element-name 
     att_name type
   >
   attribute
         
   ID 
   (男|女)
   CDATA 
   IDREF
   reference

   #REQUIRED/#IMPLIED

7. XML中的特殊符号
   &(逻辑与)  &amp;        
   <(小于)    &lt;        
   >(大于)    &gt;        
   "(双引号)  &quot;      
   '(单引号)  &apos;


综合案例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons [
	<!ELEMENT persons (person+)>
	<!ELEMENT person (name,age,contact,br?)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
	<!ELEMENT contact (phone|email)>
	<!ELEMENT br EMPTY>
	<!ELEMENT phone (#PCDATA)>
	<!ELEMENT email (#PCDATA)>
	<!ATTLIST person 
		pid ID #REQUIRED
		sex (男|女) '女'
		qq  CDATA	#IMPLIED
		parent IDREF #IMPLIED
	>
]
>
<persons>
	<person pid="p1" sex="男" qq="aaa" parent="p2">
		<name>张小明</name>
		<age>10</age>
		<contact>
			<phone>1234567</phone>
		</contact>
		<br/>
	</person>
	<person pid="p2">
		<name>张大明</name>
		<age>35</age>
		<contact>
			<email>123@qq.com</email>
		</contact>
	</person>
</persons>


开源框架struts的配置文件如下,我们也是可以对任何一个xml进行dtd约束,最后成为下列格式,这也是本篇博客的目的

<?xml version="1.0" encoding="UTF-8"?>
<config>
	<action path="/regAction" type="test.RegAction">
		<forward name="failed" path="/reg.jsp" redirect="false" />
		<forward name="success" path="/login.jsp" redirect="true" />
	</action>

	<action path="/loginAction" type="test.LoginAction">
		<forward name="failed" path="/login.jsp" redirect="false" />
		<forward name="success" path="/main.jsp" redirect="true" />
	</action>
</config>



关键字:     DTD约束  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有