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

XML
快速通过XSL转换XML文件
XML入门精解之结构与语法
利用XSL和ASP在线编辑XML文档
关于XML在语音合成中的应用
如何得到XML文档文件的大小
快速从一个XML文件中查找信息
一个在客户端生成并使用XML的例子
给XML初学者建议
XML的四种解析器原理及性能比较
改变我们生活的这些XML应用
揭穿 XQuery 的神话和误解
使用XSL将XML文档中的CDATA注释输出为HTML文本
基于XML的购物车的实现
javascript调用XML制作连动下拉框
用XML数据岛结合Dom制作通讯录
用XSL翻译Web服务应用程序
使用XSLT将XML数据转换成HTML
获取mssql的xml返回结构的方法
使用xmldom在服务器端生成静态html页面
使用纯HTML的通用数据管理和服务

XML入门教程:元素声明


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 67 ::
收藏到网摘: 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>