对于名称空间,理解了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中的使用:
1<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">
2在这里,我们把xmlns:ACC= 'http://www.SampleStore.com/Account'和
3xmlns:PART= 'http://www.PartnerStore.com/PartsCatalog'称为源名称空间,
4
5把targetNamespace='http://www.SampleStore.com/Account'称为目标名称空间,把
6
7xmlns='http://www.w3.org/1999/XMLSchema'称为默认名称空间(我们没有为它取名).
8聪明的你,已经大致知道名称空间是什么东东了吧?
9
10schema已经在默认名称空间xmlns='http://www.w3.org/1999/XMLSchema'中定义了,所
11
12以,这里不需要在它前面标明应该属什么名称空间;这,和我们在前面的JAVA代码中可以
13
14直接使用本包下的其它类的方法一样.所以,在一般的情况下,定义XML Schema时,默认
15
16名称空间都是xmlns='http://www.w3.org/1999/XMLSchema';当然,并没有规定一定要
17
18这样.
19
20好,然后我们看看在WSDL中怎么使用名称空间:
21<definitions targetnamespace=" http://loans.org/wsdl/loan-approval " xmlns=" http://schemas.xmlsoap.org/wsdl/ " xmlns:lns=" http://loans.org/wsdl/loan-approval " xmlns:plnk=" http://schemas.xmlsoap.org/ws/2003/05/partner-link/ " xmlns:xsd=" http://www.w3.org/2001/XMLSchema ">
22三个必须声明的外部名称空间是 WSDL、SOAP 和 XMLSchema
23xmlns=" http://schemas.xmlsoap.org/wsdl/ "是WSDL默认名称空间
24xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/ " 是SOAP名称空间,这里我们
25
26是用做BPEL4WS,所以不需要该名称空间
27xmlns:xsd=" http://www.w3.org/2001/XMLSchema "是XMLSchema名称空间
28
29聪明的你,已经知道怎么在XML Schema和WSDL中使用名称空间了吧?</definitions></schema>