初学xml(2)

来源:互联网 发布:c语言字符串类型定义 编辑:程序博客网 时间:2024/05/17 07:30

       昨天简单介绍了xml的理解与定义。今天我讲一下在我们编写xml的同时应该注意的问题。我们说过HTML与XML不同。HTML是用来显示数据,而XML是用来保存数据。

       当我们命名XML标记时要注意以下几点:

                                                                     1、元素必须闭合,根元素只能有一个;

                                                                     2、标记必须以英文字母或下划线作为开头,如果在XML声明中把encoding属性值设置为“gb2312”,那么也可以使用中文开头;

                                                                     3、xml标记名严格区分大小写;

                                                                     4、标记名不可以以XML三个字母为开头(不论大小写)

                                                                     5、除了开始字符外,其它字符必须是英文、数字、下划线、连接线和点。例如:<abc>   <_xy>   <书名>   <Hell-OK>

       在我们规定DTD规范,语法为:

                                                          <!DOCTYPE    根元素名称[

                                                                                                       <!ELEMENT   元素名称 类型>

                                                                                                       ......................

                                                                                                       ]>

 

其中类型分为:

                        EMPTY:空元素;

                        ANY:任何内容,可以为空;

                        PCDATA:文本(不能使用特殊符号&<>'");

                        CDATA:把内容当作字符来显示;

                        (子元素列表):逗号分隔,严格按照声明顺序来使用相应的子元素

                        (子元素?):表示该子元素可以出现 0~1次;

                        (子元素+):表示该子元素可以出现1~无数次;

                        (子元素*):表示该子元素可以出现0~无数次;

                        (子元素1|子元素2):表示可以出现子元素1或子元素2其中一个;

                        (子元素1,(子元素2,子元素3)?):()表示分组,该组出现0~1次,严格按照声明先后顺序

        我们在定义标记时还可以给它们定义属性:<book name=""  size="">。我们定义了属性要在DTD规范里面要声明一下。

语法:

        <!ATTLIST   元素名

         属性名1     类型     默认值

          .............

         >

例如:<!ATTLIST   input

              name   CDATA      "wanghao"

              type    (text|radio|submit|checkbox)   #REQUIRED

              alt      (text|radio|submit|checkbox)    #IMPLIED

              value    CDATA                                  #FIXED     "abc"

              classname    IDREFS                       #IMPLIED

>

                                  CDATA : 表示值为字符,默认值表示未赋值时自动给定的值;

                                  (en1|en2):枚举类型,表示只能从给定集合选择对应值;

                                  ID:表示值为唯一ID;

                                  IDREF:参照已存在ID;

                                  IDREFS:值为一个或多个参照已存在ID,多个参数中间用空格隔开;

实体规则:声明并引用普通字符或特殊字符的快捷方式的变量

         语法:<!ENTITY   实体名   “值”>   例如:<!ENTITY  abc  "wanghao">

         引用:&实体名;

 

 

原创粉丝点击