现在的位置: 首页 > 综合 > 正文

XML学习笔记

2013年12月01日 ⁄ 综合 ⁄ 共 3151字 ⁄ 字号 评论关闭
 

xml学习:
1)特殊字符:
    &:& 
    <:&lt   
    >:&gt   
    ":&quot 
    ':&apos 
    这里的单引号 ' 与HTML里面不一样。html里面的单引号是这样写的:&acute
 
2)cdata区:
    一个xml文件里面包含javascript代码时,可以把代码嵌入cdata区中,例如:
    <script type="text/javascript">
        <![CDATA[
            这里是javascript代码
        ]]>
    </script>
    CDATA注意事项:
CDATA部件之间不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,将很有可能出错哦。同样要注意在字符串"]]>"之间没有空格或者换行符。
 
3)xml约束模式:
    符合语法的XML文档称为结构良好的XML文档。
    通过DTD验证的XML文档称为有效的XML文档。用另外的一篇文档来描述并约束此xml,就好比一种法律约束人的行为一样,目前流行的有两种:DTD,XML Schema,后者有取代前者的趋势,但是目前DTD还是十分流行。
    DTD
        <!element 元素名(子元素1,子元素1,子元素n)>
        <!DOCTYPE 根元素名 SYSTEM "DTD文件名">
       
    DTD不使用XML语法,缺乏对定义数据类型的支持等。所以出现了XML Schema,
    XML Schema根元素必须叫schema,complexType表示是一种综合的类型。sequence表示是按顺序出现的,
    maxOccurs="unbounded"表示是没上限的,可以出现N次,
    XML Schema也得遵循一种XML Schema,语法是这样,
    <xs:schema xmlns:xs="http://www.w3.org/2001/XML Schema">
    意思就是说凡是以xs打头的元素必须遵循双引号里面url指定的约束模式,xmlns:xs是一种很特殊的属性,这个url就 是一个唯一标识符,这就是名称空间,xs就是此url的简写。它的作用范围就是它本身的元素和它的子元素,这个标识符放在哪里呢?这个用户不需要关心,xml解析工具是知道的。
 
4)命名空间属性
命名空间属性一般放置在元素的开始标记处,其使用语法如下所示:
xmlns:namespace-prefix="namespace"
 
 
默认的名称空间:
定义一个默认的XML命名空间使得我们在子元素的开始标记中不需要使用前缀。他的语法如下所示:
<element xmlns="namespace">
 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee(这里是空白,可以包含空格,回车,换行等空白字符)http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
web-app是根元素,第一个“http://java.sun.com/xml/ns/j2ee”唯一的标识了一个Schema模式文档(这里并没指定此文档的位置),用的是xmlns属性,它没加前缀,说明这个uri是一个默认的名称空间,其作用范围为此元素和它所有的子元素。xsi:schemaLocation里面的http://java.sun.com/xml/ns/j2ee指明上面xmlns属性里面的http://java.sun.com/xml/ns/j2ee的位置在http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd,xsi是一个前缀,它代表xmlns:xsi属性里面指定的uri,schemaLocation属性是从xsi指定的uri中来的。所以在上面就声明了xsi,这个xsi的值为http://www.w3.org/2001/XMLSchema-instance,这个uri是每个xml解析工具都知道的。所以不用指定它的位置。
 
5)XML标记都是大小写敏感的
    这与HTML不一样, XML标记是大小写敏感的。   
    XML中, 标记<Letter>与标记<letter>是两个不同的标记。 
    因此在XML文档中开始标记和结束标记的大小写必须保持一致。   
    <Message>This is incorrect</message>   //错误的
    <message>This is correct</message>     //正确的
 
    所有的XML元素必须合理包含
    XML中不允许不正确的嵌套包含。   
    HTML中,允许有一些不正确的包含,例如下面的代码可以被浏览器解析:
    <b><i>This text is bold and italic</b></i>
   
    XML中所有元素必须正确的嵌套包含,上面的代码应该这样写: 
    <b><i>This text is bold and italic</i></b>
 
    所有的XML文档必须有一个根元素
    XML文档中的第一个元素就是根元素。
   
    所有XML文档都必须包含一个单独的标记来定义,所有其他元素的都必须成对的在根元素中嵌套。XML文档有且只能有一 个根元素。
   
    所有的元素都可以有子元素,子元素必须正确的嵌套在父元素中,下面的代码可以形象的说明:
   
    <root>
    <child>
    <subchild>.....</subchild>
    </child>
    </root> 
 
    属性值必须使用引号""
    XML中,元素的属性值没有引号引着是不符合规定的。
   
    如同HTML一样,XML元素同样也可以拥有属性。XML元素的属性以名字/值成对的出现。XML语法规范要求XML元素属性值        必须用引号引着。
 
6)XML元素命名
    XML元素命名必须遵守下面的规则:
   
    元素的名字可以包含子母,数字和其他字符。
    元素的名字不能以数字或者标点符号开头。
    元素的名字不能以XML(或者xml,Xml,xMl...)开头。
    元素的名字不能包含空格。
    自己“发明”的XML元素还必须注意下面一些简单的规则:
   
    任何的名字都可以使用,没有保留字(除了XML),但是应该使元素的名字具有可读性,名字使用下划线是一个不错的选择。
   
    例如: <first_name>, <last_name>.
   
    尽量避免使用“-”,“.”,因为有可能引起混乱。
   
    只要你愿意元素的名字可以很长,但也不要太夸张了哦。命名应该遵循简单易读的原则,例如:<book_title>是一个不错的名字,而<the_title_of_the_book>则显得罗嗦了。
   
    XML文档往往都对应着数据表,我们应该尽量让数据库中的字段的命名和相应的XML文档中的命名保持一致,这样可以方便数据变换。 
    非英文/字符/字符串也可以作为XML元素的名字,例如<蓝色理想><经典论坛>这都是完全合法的名字。但是有一些软件不能很好的支持这种命名,所以尽量使用英文字母来命名。
    XML元素命名中不要使用":",因为XML命名空间需要用到这个十分特殊的字符。

 

抱歉!评论已关闭.