当前位置: 首页 > 图文教程 > XML家族 > XML > XML入门教程:元素声明

XML
XML简易教程之四
XML与HTML的结合(上)
XML与HTML的结合(下)
XML入门的常见问题(一)
XML入门的常见问题(二)
XMLHTTP资料
什么是XML
什么是 XML Web Service
XML正在接管Web服务 成为SOA的基础
怎么样在网页上读取远程xml的数据
XML教程—编写结构完整的XML文档
读写xml文件的2个小函数
XML文档的基本操作
初学者如何开发出一个高质量的J2EE系统
优化 JavaScript 代码
自动更新程序的设计框架
使Firefox对XML的处理兼容IE的节点处理方法
WML学习之四 锚和任务
WML学习之五 显示表单
WML学习之六 事件

XML入门教程:元素声明


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 55 ::
收藏到网摘: n/a


                         有效文档中使用的每个元素都必须在文档的DTD中用元素声明进行声明。element_name可是任何合法的XML名称,content_model(内容模型)指定元素可以或必须包含的子元素以及子元素的顺序。下面具体介绍内容模型的内容。             
上节文档类型声明中的每一项都是元素声明,定义了每个元素的约束。元素声明的格式为:
<!ELEMENT element_name (content_model)>
有效文档中使用的每个元素都必须在文档的DTD中用元素声明进行声明。element_name可是任何合法的XML名称,content_model(内容模型)指定元素可以或必须包含的子元素以及子元素的顺序。下面具体介绍内容模型的内容。
本文由软晨学习网(http://www.ruanchen.com)整理发布!转载请注明出处,谢谢!
           
    #PCDATA,规定元素只包含已析的字符数据。下面声明指出一个name元素可以包含文本,但不能划分为独立的area_code、number和extension元素:    
    <!ELEMENT name (#PCDATA)>            
    子元素,可指明元素的子元素。下面声明表示name元素必须包含且只包含一个desc元素。    
    <!ELEMENT name (desc)>    
    也可用逗号为分隔符,指明多个子元素。并且子元素出现的次序必须按定义时的顺序。如:    
    <!ELEMENT name (id,desc)>    
    name元素的id子元素必须在desc子元素前面,否则验证会出错,该文档不是一个有效的XML文档。    
    下面这个文档是有效的 <name>    <id>1</id>    <desc>dtd test</desc> </name> 下面这个文档是无效的,顺序颠倒了 <name>    <desc>dtd test</desc>    <id>1</id> </name> 下面的文档也是无效的,有多余的元素 <name>    <id>1</id>    <desc>dtd test</desc>    <date>2005/01/31</date> </name>            
    子元素的个数,我们可通过正则表达式来规定子元素的个数。        
                       
      ?,允许零个或一个该元素                           
      *,允许零个或多个该元素                           
      ,允许一个或多个该元素                     
      下面我们可利用这些符号规定id子元素必须出现,且只能出现一次,而desc子元素可选。本文由软晨学习网(http://www.ruanchen.com)整理发布!转载请注明出处,谢谢!    
      <!ELEMENT name (id,desc*)>    
      根据上面的声明,下面的name元素都是有效的。    
      <name>    <id>1</id>    <desc>dtd test</desc> </name> <name>    <id>2</id> </name> <name>    <id>3</id>    <desc>dtd test</desc>    <desc>another test</desc> </name>            
      可选项(|),选项是一个参数列表,每个参数间用“|”分隔,代表能且只能选一个子元素。    
      <!ELEMENT choice (good | bad)>    
      上例的choice元素可选一个good子元素,或bad子元素,且只能从选一个。可选的参数列可以多项,不限于两项。如:    
      <!ELEMENT choice (one | two | three | four)>            
      小括号,可用小括号把选项括起来,以表达更丰富的意思,如我们想表示choice元素必须包含一个good子元素,并且必须包含ok子元素或bad子元素的一个。    
      <!ELEMENT choice (good,(ok|bad))>            
      混合内容,在一些文档中,一个元素可能既包含子元素,也包含字符串,这些内容叫混合内容。可用以下方式表示:    
      <!EMEMENT description (#PCDATA | term)* )>    
      该声明表示description元素可包含已析的字符串和term子元素,且允许出现零次或多次,如:    
      <description> this is a <term>dtd</term> test. </description>    
      #PCDATA必须在第一位,可选的子元素可任意多项。            
      空元素,某些元素不用包含任何内容,称之为空元素。写成以/>结束的独立标签。    
      <!ELEMENT image EMPTY>    
      示例:    
      <image src="http://www.xml.com/dtd.jpg" />            
      ANY,允许元素内包含任意内容。该选项在dtd测试时很有用,在生产系统中尽量不要使用。    
      <!ELEMENT page ANY>