<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 14, 文章 - 0, 評論 - 15, 引用 - 0
    數(shù)據(jù)加載中……

    學習java&XML第二天,命名空間

          關(guān)于XML的基礎(chǔ)知識一直都是讀的http://www1.xml.net.cn/那本初學進階,講的非常容易懂,就是關(guān)于命名空間這一塊沒有給出一個比較好的例子,所以自己整理了一下。
          初學進階里面說命名空間是用于在一個XML里面引入多個DTD的,的確,概念上是這樣子的,不過網(wǎng)上的資料顯示XML的命名空間并不支持DTD格式的格式定義,也就是說,想實現(xiàn)一個XML當中有多個文檔格式的話,就必須要使用Schema。
          先了解一下我們要實現(xiàn)的例子:
          
    client.xml
    <聯(lián)系人列表>
      
    <聯(lián)系人>
        
    <姓名>張三</姓名>
        
    <ID>001</ID>
        
    <公司>A公司</公司>
        
    <EMAIL>zhang@aaa.com</EMAIL>
        
    <電話>(010)62345678</電話>
        
    <地址>
          
    <街道>五街1234號</街道>
          
    <城市>北京市</城市>
          
    <省份>北京</省份>
        
    </地址>
        
    <直接上司>
          
    <姓名>王五</姓名>
          
    <電話>
            
    <秘書電話>(010)62345678</秘書電話>
            
    <手機>13601234567</手機>
          
    </電話>
        
    </直接上司>
      
    </聯(lián)系人>
    </聯(lián)系人列表>

          以上是我們想要最終表達的數(shù)據(jù)格式,其中,聯(lián)系人的直接上司屬性有點麻煩,因為整個直接上司表達的是一個“企業(yè)經(jīng)理”的“對象”,該“對象”可以以另外的XML形式體現(xiàn),如下:

    <?xml version="1.0" encoding="GB2312"?>
    <企業(yè)經(jīng)理>
      
    <姓名>王五</姓名>
      
    <電話>
        
    <秘書電話>(010)62345678</秘書電話>
        
    <手機>13601234567</手機>
      
    </電話>
    </企業(yè)經(jīng)理>

          看以上的兩個文檔,實際上就是我們想表達的數(shù)據(jù),兩個抽象的實體“聯(lián)系人”和“企業(yè)經(jīng)理”之間存在著一對一的關(guān)系。
          但是我們現(xiàn)在有個麻煩,在聯(lián)系人列表這個XML當中,有兩個“姓名”元素和兩個“電話”元素,他們表達的是不同的意思,其文檔格式定義也不同。他們分別對應(yīng)著不同的DTD或者是Schema。
          為了解決這一問題,就有了命名空間的概念,首先,對于我們要最終作用于其上的client.xml,他必須首先區(qū)別聯(lián)系人和企業(yè)經(jīng)理,做法就是在前面加前綴,比如聯(lián)系人的名字改為“聯(lián)系人:名字”而企業(yè)經(jīng)理的名字則改為“企業(yè)經(jīng)理:名字”
          其次,兩個不同的文檔定義文件必須首先定義好命名空間,在作用于XML文件的時候,使命名空間和XML聲明中的命名空間一致
          下面分別給出例子代碼:
          client.xml:
    <?xml version="1.0" encoding="GB2312"?>
    <聯(lián)系人:聯(lián)系人列表 
    xmlns:聯(lián)系人
    ="id" 
    xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation
    ="id client.xsd id2 manager.xsd"
    xmlns:企業(yè)經(jīng)理
    ="id2">
        
    <聯(lián)系人:聯(lián)系人>
            
    <聯(lián)系人:姓名>張三</聯(lián)系人:姓名>
            
    <聯(lián)系人:ID>001</聯(lián)系人:ID>
            
    <聯(lián)系人:公司>A公司</聯(lián)系人:公司>
            
    <聯(lián)系人:EMAIL>zhang@聯(lián)系人.com</聯(lián)系人:EMAIL>
            
    <聯(lián)系人:電話>(010)62345678</聯(lián)系人:電話>
            
    <聯(lián)系人:地址>
                
    <聯(lián)系人:街道>五街1234號</聯(lián)系人:街道>
                
    <聯(lián)系人:城市>北京市</聯(lián)系人:城市>
                
    <聯(lián)系人:省份>北京</聯(lián)系人:省份>
            
    </聯(lián)系人:地址>
            
    <聯(lián)系人:直接上司>
                
    <企業(yè)經(jīng)理:姓名>王五</企業(yè)經(jīng)理:姓名>
                
    <企業(yè)經(jīng)理:電話>
                  
    <企業(yè)經(jīng)理:秘書電話>(010)62345678</企業(yè)經(jīng)理:秘書電話>
                  
    <企業(yè)經(jīng)理:手機>13601234567</企業(yè)經(jīng)理:手機>
                
    </企業(yè)經(jīng)理:電話>
            
    </聯(lián)系人:直接上司>
        
    </聯(lián)系人:聯(lián)系人>
        
    <聯(lián)系人:聯(lián)系人>
            
    <聯(lián)系人:姓名>李四</聯(lián)系人:姓名>
            
    <聯(lián)系人:ID>002</聯(lián)系人:ID>
            
    <聯(lián)系人:公司>B公司</聯(lián)系人:公司>
            
    <聯(lián)系人:EMAIL>li@bbb.org</聯(lián)系人:EMAIL>
            
    <聯(lián)系人:電話>(021)87654321</聯(lián)系人:電話>
            
    <聯(lián)系人:地址>
                
    <聯(lián)系人:街道>南京路9876號</聯(lián)系人:街道>
                
    <聯(lián)系人:城市>上海市</聯(lián)系人:城市>
                
    <聯(lián)系人:省份>上海</聯(lián)系人:省份>
            
    </聯(lián)系人:地址>
            
    <聯(lián)系人:直接上司>aa</聯(lián)系人:直接上司>
        
    </聯(lián)系人:聯(lián)系人>
    </聯(lián)系人:聯(lián)系人列表>

          client.xsd:
    <?xml version="1.0" encoding="GB2312" standalone="yes"?>
    <!--W3C Schema generated by XMLSpy v2005 sp1 U (http://www.xmlspy.com)-->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="id" targetNamespace="id" elementFormDefault="qualified">
        
    <xs:element name="EMAIL" type="xs:string"/>
        
    <xs:element name="ID" type="xs:string"/>
        
    <xs:element name="公司" type="xs:string"/>
        
    <xs:element name="地址">
            
    <xs:complexType>
                
    <xs:sequence>
                    
    <xs:element ref="街道"/>
                    
    <xs:element ref="城市"/>
                    
    <xs:element ref="省份"/>
                
    </xs:sequence>
            
    </xs:complexType>
        
    </xs:element>
        
    <xs:element name="城市" type="xs:string"/>
        
    <xs:element name="姓名" type="xs:string"/>
        
    <xs:element name="電話" type="xs:string"/>
        
    <xs:element name="省份" type="xs:string"/>
        
    <xs:element name="聯(lián)系人">
            
    <xs:complexType>
                
    <xs:sequence>
                    
    <xs:element ref="姓名"/>
                    
    <xs:element ref="ID"/>
                    
    <xs:element ref="公司"/>
                    
    <xs:element ref="EMAIL"/>
                    
    <xs:element ref="電話"/>
                    
    <xs:element ref="地址"/>
                    
    <xs:element ref="直接上司"/>
                
    </xs:sequence>
            
    </xs:complexType>
        
    </xs:element>
        
    <xs:element name="聯(lián)系人列表">
            
    <xs:complexType>
                
    <xs:sequence>
                    
    <xs:element ref="聯(lián)系人" maxOccurs="unbounded"/>
                
    </xs:sequence>
            
    </xs:complexType>
        
    </xs:element>
        
    <xs:element name="街道" type="xs:string"/>
        
    <xs:element name="直接上司" type="xs:anyType"/>
    </xs:schema>

          manager.xsd:
    <?xml version="1.0" encoding="GB2312" standalone="yes"?>
    <!--W3C Schema generated by XMLSpy v2005 sp1 U (http://www.xmlspy.com)-->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="id2" targetNamespace="id2" elementFormDefault="qualified">
        
    <xs:element name="企業(yè)經(jīng)理">
            
    <xs:complexType>
                
    <xs:sequence>
                    
    <xs:element ref="姓名"/>
                    
    <xs:element ref="電話"/>
                
    </xs:sequence>
            
    </xs:complexType>
        
    </xs:element>
        
    <xs:element name="姓名" type="xs:string"/>
        
    <xs:element name="手機" type="xs:string"/>
        
    <xs:element name="電話">
            
    <xs:complexType>
                
    <xs:sequence>
                    
    <xs:element ref="秘書電話"/>
                    
    <xs:element ref="手機"/>
                
    </xs:sequence>
            
    </xs:complexType>
        
    </xs:element>
        
    <xs:element name="秘書電話" type="xs:string"/>
    </xs:schema>

    說明:我在這里用id和id2來表示命名空間是應(yīng)為很多人會認為那個命名空間的網(wǎng)址會在解析XML的時候被訪問,我一開始也這樣認為,所以改成id來做個測試。

    posted on 2005-03-08 17:32 Boris-Java 閱讀(1023) 評論(0)  編輯  收藏 所屬分類: java&xml

    主站蜘蛛池模板: 亚洲综合图色40p| 麻豆国产精品入口免费观看| 亚洲精品视频免费观看| 色偷偷噜噜噜亚洲男人| 暖暖免费高清日本一区二区三区 | 亚欧在线精品免费观看一区| 亚洲av最新在线网址| 日韩电影免费在线观看网站| 亚洲国产精品无码中文字| 香蕉成人免费看片视频app下载| 亚洲AV永久无码精品成人| 日韩av无码久久精品免费| 亚洲精品国产情侣av在线| 日本三级2019在线观看免费| 亚洲一线产品二线产品| 国产免费变态视频网址网站 | 精品国产成人亚洲午夜福利| 最近中文字幕无免费视频| 精品亚洲福利一区二区| 亚洲日韩在线中文字幕第一页| 中文字幕免费人成乱码中国| 亚洲va在线va天堂va不卡下载 | 丁香六月婷婷精品免费观看| 国产成人亚洲综合无码精品| 亚洲美女视频免费| 亚洲爆乳精品无码一区二区| 国产av无码专区亚洲国产精品| 在线观看黄片免费入口不卡| 亚洲国产精品综合一区在线| 国产美女做a免费视频软件| 高清永久免费观看| 亚洲性色成人av天堂| 免费一级肉体全黄毛片| 免费在线看黄网站| 亚洲啪AV永久无码精品放毛片| 亚洲国产精品综合久久网络| 免费A级毛片无码专区| 亚洲精品无码av片| 久久香蕉国产线看观看亚洲片| 成年女人喷潮毛片免费播放| 福利免费在线观看|