對於名稱空間,理解了OO思想的人應該是比較簡單的了,特別是對學過C++的人來說更是
如此;但很多看了我前面文章的朋友,在和我的交流中,好像對名稱空間都不怎麼清楚,
下面我們就來說說怎麼樣在 XML Schema和WSDL中使用名稱空間.
先看看一段JAVA代碼:
package com.hongsoft.test.pkg1;
import com.hongsoft.test.pkg2.Test1;
import com.hongsoft.test.pkg2.Test2;
在這個檔案中,我們把com.hongsoft.test.pkg2.Test1和
com.hongsoft.test.pkg2.Test2稱為源類,把本類稱為目標類,把
com.hongsoft.test.pkg1包下的其它類稱為預設類.
然後我們看看一段名稱空間在 XML Schema中的使用:
<schema targetNamespace='http://www.SampleStore.com/Account'
xmlns='http://www.w3.org/1999/XMLSchema'
xmlns:ACC= 'http://www.SampleStore.com/Account'
xmlns:PART= 'http://www.PartnerStore.com/PartsCatalog'>
在這裡,我們把xmlns:ACC= 'http://www.SampleStore.com/Account'和
xmlns:PART= 'http://www.PartnerStore.com/PartsCatalog'稱為源名稱空間,
把targetNamespace='http://www.SampleStore.com/Account'稱為目標名稱空間,把
xmlns='http://www.w3.org/1999/XMLSchema'稱為預設名稱空間(我們沒有為它取名).
聰明的你,已經大致知道名稱空間是什麼東東了吧?
schema已經在預設名稱空間xmlns='http://www.w3.org/1999/XMLSchema'中定義了,所
以,這裡不需要在它前面標明應該屬什麼名稱空間;這,和我們在前面的JAVA代碼中可以
直接使用本包下的其它類的方法一樣.所以,在一般的情況下,定義XML Schema時,預設
名稱空間都是xmlns='http://www.w3.org/1999/XMLSchema';當然,並沒有規定一定要
這樣.
好,然後我們看看在WSDL中怎麼使用名稱空間:
<definitions
targetNamespace="http://loans.org/wsdl/loan-approval"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:lns="http://loans.org/wsdl/loan-approval">
三個必須聲明的外部名稱空間是 WSDL、SOAP 和 XMLSchema
xmlns="http://schemas.xmlsoap.org/wsdl/"是WSDL預設名稱空間
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 是SOAP名稱空間,這裡我們
是用做BPEL4WS,所以不需要該名稱空間
xmlns:xsd="http://www.w3.org/2001/XMLSchema"是XMLSchema名稱空間
聰明的你,已經知道怎麼在XML Schema和WSDL中使用名稱空間了吧?