以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  XML详解----Schema(精)[原创]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=23819)


--  作者:xiaoxuanfeng
--  发布时间:11/1/2005 9:42:00 AM

--  XML详解----Schema(精)[原创]
有人会问,DTD和Schema都是对XML文档的一种约束,为什么不就选其中之一,而又有Schema呢。因为DTD安全度太低了,也就是说它的约束定义能力不足,无法对XML实例文档做出更细致的语义限制。其实细心的人会发现,在DTD中,只有一个数据类型,就是PCDATA(用在元素中)和CDATA(用在属性中),在里面写日期也行,数字还行,字符更是没问题。而Schema正是针对这些DTD的缺点而设计的,Schema是完全使用XML作为描述手段,具有很强的描述能力,扩展能力和处理维护能力等。下面让我们看一个简单的例子吧:
hello.xml
-------------------
<?xml version="1.0"?>
<greeting>Hello World!!</greeting>

说明:
一个根元素:greeting;且这个元素不含属性,无子元素,内容是字符串。

hello.xsd
----------
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="greeting" type="xsd:string"/>
</xsd:schema>
说明:
XML Schema文档后缀名是.xsd,完全符合XML语法,根元素是schema,命名空间xmlns:xsd="http://www.w3.org/2001/XMLSchema,用元素<element>定义实例文档中的元素,如greeting。xsd:string就是定义的数据类型了,其中的数据类型有很多,比如:int,double,dateTime,Boolean,long,integer,float,等,总之Java等语言里有的数据类型它都有,但要以“xsd:”开头。
让我们再看一个里面有子无素的例子:
customer.xml
-----------
<customer>
<name>teiki</name>
<address>No.237, Road Waitan, Shanghai</address>
</customer>
则可以写出以下的XML Schema文档:
customer.xsd
----------------
1: <?xml version="1.0"?>
2: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3: <xsd:element name="customer">
4: <xsd:complexType>
5: <xsd:sequence>
6: <xsd:element name="name" type="xsd:string"/>
7: <xsd:element name="address" type="xsd:string" />
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11: </xsd:schema>
说明:
实例文档customer.xml中,<customer>元素含有两个子元素,在Schema中凡是有两个以上的子元素,就认为是复杂类型的,所以我们在Schema文档中采用ComplexType来定义该元素。表示有多个XML子元素。
sequence表示子元素依次出现的顺序。
如果有多层子元素怎么办呢,同样的道理,有几层写几层,一直往下嵌就OK了,这里我要说的是另一种方法,结构看上去会清晰一些。
address.xml
---------------
<customer>
<name>Teiki</name>
<address>
<!-- address追加一个地址子元素 -->
<prefecture>Zhejiang</prefecture>
<city>Hangzhou</city>
<street>Xilu Road, No.121, 7F</street>
</address>
</customer>
下面就是采用ref元素来编写的这个Schema文档:
address2.xsd
----------------------
1: <?xm l version="1.0"?>
2: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="customer">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element name="name" type="xsd:string"/>
8: <xsd:element ref="address"/>
9: </xsd:sequence>
10: </xsd:complexType>
11: </xsd:element>
12:
13: <xsd:element name="address">
14: <xsd:complexType>
15: <xsd:sequence>
16: <xsd:element name="prefecture" type="xsd:string"/>
17: <xsd:element name="city" type="xsd:string" />
18: <xsd:element name="street" type="xsd:string" />
19: </xsd:sequence>
20: </xsd:complexType>
21: </xsd:element>
22:
23: </xsd:schema>
说明:
如果按正常的写法,应该把13-21行的内容替换到每8行去,但这里使用ref元素可以直接将其指向另一个模块,使文档更加具有可读性。
如果元素中包含属性怎么办呢?一样简单,只要在定义完子元素的后面再着定义属性就行了。定义属性用“attribute”,还是举个例子吧
customer2.xml
---------------
<customer id="001718">
<name>Teiki</name>
<address>No.237, Road Waitan, Shanghai</address>
</customer>
这个例子和上面的一个例子差不多,只是在元素customer中设了一个属性id。
customer2.xsd
------------------
1: <?xml version="1.0"?>
2: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="customer">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element name="name" type="xsd:string"/>
8: <xsd:element name="address" type="xsd:string" />
9: </xsd:sequence>
10: <!-- 增加属性定义 -->
11: <xsd:attribute name="id" type="xsd:string"/>
12: </xsd:complexType>
13: </xsd:element>
14:
15: </xsd:schema>
说明:
需要注意的一点是,属性和元素不是一家的,所以要把它放在sequence外面写,但它们都在customer的孩子,所以要写在complexType的里面。
下面再看一个例子:
order4-1.xsd
----------------------
1:<?xml version="1.0"?>
2:<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3:
4: <xsd:element name="order">
5: <xsd:complexType>
6: <xsd:sequence>
7: <xsd:element ref="orderItem" maxOccurs="10"/>
8: </xsd:sequence>
9: </xsd:complexType>
10: </xsd:element>
11:
12: <xsd:element name="orderItem">
13: <xsd:complexType>
14: <xsd:sequence>
15: <xsd:choice>
16: <xsd:element name="id" type="idType"/>
17: <xsd:element name="name" type="xsd:string"/>
18: </xsd:choice>
19: <xsd:element name="quantity" type="quantityType"/>
20: </xsd:sequence>
21: </xsd:complexType>
22: </xsd:element>
23:
24: <xsd:simpleType name="idType">
25: <xsd:restriction base="xsd:string">
26: <xsd:enumeration value="7-5058-3496-7"/>
27: <xsd:enumeration value="7-5005-6450-3"/>
28: <xsd:enumeration value="7-3020-6069-7"/>
29: </xsd:restriction>
30: </xsd:simpleType>
31:
32: <xsd:simpleType name="quantityType">
33: <xsd:restriction base="xsd:integer">
34: <xsd:minInclusive value="1"/>
35: <xsd:maxInclusive value="10"/>
36: </xsd:restriction>
37: </xsd:simpleType>
38:
39:</xsd:schema>
上面的例子中,maxOccurs代表:相同元素最多出现的次数,与些相反的是minOccurs代表:出现的最少次数。默认情况下两个都为“1”,如果把minOccurs设为“0”,表示该元素可有可无。choice代表:可选的元素,也就是在这里面写的元素只能选其中之一,不能全写。simpleType代表自定义数据类型,也就是name里的并不是真正的数据类型,而是根据自己的意愿定制的。restriction代表对某一数据类型做约束,也就是只能取其中范围之内符合要求的,比如第25-29行中,里面又有个元素enumeration代表枚举,也就是只能在枚举的那几个中选一个,而下在的36-36行,里面又有一对元素minInclusive和maxInclusive代表类型的取值范围,也就是只能取大于等于minInclusive并且小于等于maxInclusive的数。
把这个Schema用在XML中是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="D:\ProgramCode\Year2\XML\practice\temp.xsd">
<orderItem>
<id>7-5005-6450-3</id>
<quantity>3</quantity>
</orderItem>
<orderItem>
<name>xyb</name>
<quantity>3</quantity>
</orderItem>
<!-- 注意下面这个是错的,因为超出了规定的范围 -->
<orderItem>
<id>7-5005-6450-3</id>
<quantity>13</quantity>
</orderItem>
<!? 从上面的注释到此,是错误的 -->
</order>
说明:
红色的部分是导入Schema的命令,绿色的是Schema文件的路径,如果用XMLSPY写时,会自动加上。
对属性的设置,基本上和元素的差不多。比如:
<xsd:element name="orderItem">
<xsd:complexType>
<xsd:sequence></xsd:sequence>
<xsd:attribute name="id" type="idType" use="required"/>
<xsd:attribute name="quantity" type="xsd:integer" default="1"/>
</xsd:complexType>
<xsd:simpleType name="idType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1}-\d{4}-\d{4}-\d{1}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
这里我们讲id属性类型作为一种自定义数据类型idType。它的格式就是上面用到的也就是类似于“7-5005-6450-3”样的。
而且,用attribute元素的use属性来定义是否是必须的属性。
required是必须值,optional是可选值,prohibited是无属性值。default属性是默认值。
{replyview}{/replyview}


--  作者:fengzhiyi
--  发布时间:11/1/2005 7:21:00 PM

--  
讲的很详细,举例典型简单,赞一个!!!希望以后多发这样的贴!!!
--  作者:chenhm66
--  发布时间:11/17/2005 11:05:00 AM

--  
不错啊,
--  作者:su230501
--  发布时间:11/24/2005 11:58:00 AM

--  
不错,简单适用
--  作者:victorwish
--  发布时间:11/28/2005 12:02:00 PM

--  
太感谢了。
--  作者:littleguy
--  发布时间:11/29/2005 5:19:00 PM

--  
good,thanks
--  作者:厦门乞丐
--  发布时间:12/1/2005 1:14:00 PM

--  
好东西,当然要顶啦。谢谢楼主
--  作者:lai_gb
--  发布时间:12/4/2005 5:16:00 PM

--  
好好。谢谢。
--  作者:bruclan
--  发布时间:12/4/2005 5:56:00 PM

--  
写的很不错,留下了
--  作者:howcoolo
--  发布时间:12/8/2005 11:01:00 AM

--  
不错不错,感谢楼主分享那么好的东西
--  作者:du_fangfang
--  发布时间:12/9/2005 8:07:00 PM

--  不错的帖子
将的很详细,顶了~~~希望以后多发这样的好贴
--  作者:xlx
--  发布时间:12/13/2005 11:07:00 AM

--  
非常感谢。很易懂.
--  作者:gzhpie
--  发布时间:12/13/2005 2:26:00 PM

--  
好 顶下
--  作者:got1949
--  发布时间:12/13/2005 10:43:00 PM

--  
多谢,对于初学者的我,受益匪浅。
--  作者:vampire_shirley
--  发布时间:12/15/2005 5:18:00 PM

--  
多谢赐教
--  作者:fuxue
--  发布时间:12/17/2005 3:38:00 PM

--  
简单易懂   好帖
--  作者:trina
--  发布时间:12/29/2005 1:53:00 PM

--  
顶!
lz多出这样的好贴!
--  作者:gyz2
--  发布时间:1/11/2006 6:47:00 PM

--  
谢谢不错的说
--  作者:zhxfzhxf1
--  发布时间:1/30/2006 3:44:00 PM

--  
谢谢
--  作者:一只绣花鞋
--  发布时间:2/3/2006 12:18:00 PM

--  
好东西
--  作者:cthily
--  发布时间:2/28/2006 11:41:00 AM

--  
不错,学习中。
--  作者:wydcs
--  发布时间:3/10/2006 4:33:00 PM

--  
Thinks!
--  作者:superchao
--  发布时间:3/13/2006 4:52:00 PM

--  
不错
--  作者:mackyliu
--  发布时间:3/16/2006 9:55:00 AM

--  
非常不错的例子,适合我们新手看.感谢
--  作者:メ冰枫ぱ雪
--  发布时间:3/19/2006 3:36:00 AM

--  
很好,最近正在总结。。

谢谢楼主~!


--  作者:jomi
--  发布时间:3/19/2006 10:49:00 AM

--  
谢谢!
--  作者:zhumoo
--  发布时间:3/20/2006 3:19:00 PM

--  
明白一些了,谢谢,希望多发这类好文。
--  作者:makewu
--  发布时间:3/23/2006 10:34:00 PM

--  
我是个新手,问个问题。<?xml version="1.0" encoding="UTF-8" ?>
-<xsd:schema targetNamespace="urn:uddi-org:api_v2" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:uddi="urn:uddi-org:api_v2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
 attributeFormDefault="unqualified" version="2.03" id="uddi">
- <!--

    Copyright (c) 2000 - 2002 by Accenture, Ariba, Inc., Commerce One, Inc.
    Fujitsu Limited, Hewlett-Packard Company, i2 Technologies, Inc.,
    Intel Corporation, International Business Machines Corporation,  
    Microsoft Corporation, Oracle Corporation, SAP AG, Sun Microsystems, Inc.,
    and VeriSign, Inc.  All Rights Reserved.
    
    Copyright (c) OASIS Open 2002. All Rights Reserved.
     

  -->
  <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd" />
- <!--  Attribute type definitions
  -->
- <xsd:simpleType name="bindingKey">
  <xsd:restriction base="string" />
 </xsd:simpleType>
- <xsd:simpleType name="businessKey">
  <xsd:restriction base="string" />
 </xsd:simpleType>
- <xsd:simpleType name="serviceKey">
  <xsd:restriction base="string" />
 </xsd:simpleType>
- <xsd:simpleType name="tModelKey">
  <xsd:restriction base="string" />
 </xsd:simpleType>
- <xsd:simpleType name="direction">
- <xsd:restriction base="NMTOKEN">
   <xsd:enumeration value="fromKey" />
   <xsd:enumeration value="toKey" />
  </xsd:restriction>
  </xsd:simpleType>
- <xsd:simpleType name="truncated">
- <xsd:restriction base="NMTOKEN">
   <xsd:enumeration value="true" />
   <xsd:enumeration value="false" />
  </xsd:restriction>
  </xsd:simpleType>
- <xsd:simpleType name="URLType">
- <xsd:restriction base="NMTOKEN">
   <xsd:enumeration value="mailto" />
   <xsd:enumeration value="http" />
   <xsd:enumeration value="https" />
   <xsd:enumeration value="ftp" />
   <xsd:enumeration value="fax" />
   <xsd:enumeration value="phone" />
   <xsd:enumeration value="other" />
  </xsd:restriction>
  </xsd:simpleType>
- <xsd:simpleType name="keyType">
- <xsd:restriction base="NMTOKEN">
   <xsd:enumeration value="businessKey" />
   <xsd:enumeration value="tModelKey" />
   <xsd:enumeration value="serviceKey" />
   <xsd:enumeration value="bindingKey" />
  </xsd:restriction>
  </xsd:simpleType>
- <!--  Type and element definitions for registry content
  -->
  <xsd:element name="accessPoint" type="uddi:accessPoint" />
- <xsd:complexType name="accessPoint">
- <xsd:simpleContent>
- <xsd:extension base="string">
    <xsd:attribute name="URLType" type="uddi:URLType" use="required" />
   </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="address" type="uddi:address" />
- <xsd:complexType name="address">
- <xsd:sequence>
   <xsd:element ref="uddi:addressLine" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="useType" type="string" use="optional" />
  <xsd:attribute name="sortCode" type="string" use="optional" />
  <xsd:attribute name="tModelKey" type="uddi:tModelKey" use="optional" />
  </xsd:complexType>
  <xsd:element name="addressLine" type="uddi:addressLine" />
- <xsd:complexType name="addressLine">
- <xsd:simpleContent>
- <xsd:extension base="string">
    <xsd:attribute name="keyName" type="string" use="optional" />
    <xsd:attribute name="keyValue" type="string" use="optional" />
   </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="assertionStatusItem" type="uddi:assertionStatusItem" />
- <xsd:complexType name="assertionStatusItem">
- <xsd:sequence>
   <xsd:element ref="uddi:fromKey" />
   <xsd:element ref="uddi:toKey" />
   <xsd:element ref="uddi:keyedReference" />
   <xsd:element ref="uddi:keysOwned" />
  </xsd:sequence>
  <xsd:attribute name="completionStatus" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="authInfo" type="string" />
  <xsd:element name="bindingKey" type="uddi:bindingKey" />
  <xsd:element name="bindingTemplate" type="uddi:bindingTemplate" />
- <xsd:complexType name="bindingTemplate">
- <xsd:sequence>
  <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
- <xsd:choice>
    <xsd:element ref="uddi:accessPoint" />
    <xsd:element ref="uddi:hostingRedirector" />
   </xsd:choice>
  <xsd:element ref="uddi:tModelInstanceDetails" />
  </xsd:sequence>
  <xsd:attribute name="serviceKey" type="uddi:serviceKey" use="optional" />
  <xsd:attribute name="bindingKey" type="uddi:bindingKey" use="required" />
  </xsd:complexType>
  <xsd:element name="bindingTemplates" type="uddi:bindingTemplates" />
- <xsd:complexType name="bindingTemplates">
- <xsd:sequence>
   <xsd:element ref="uddi:bindingTemplate" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="businessEntity" type="uddi:businessEntity" />
- <xsd:complexType name="businessEntity">
- <xsd:sequence>
   <xsd:element ref="uddi:discoveryURLs" minOccurs="0" />
   <xsd:element ref="uddi:name" maxOccurs="unbounded" />
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:contacts" minOccurs="0" />
   <xsd:element ref="uddi:businessServices" minOccurs="0" />
   <xsd:element ref="uddi:identifierBag" minOccurs="0" />
   <xsd:element ref="uddi:categoryBag" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="businessKey" type="uddi:businessKey" use="required" />
  <xsd:attribute name="operator" type="string" use="optional" />
  <xsd:attribute name="authorizedName" type="string" use="optional" />
  </xsd:complexType>
  <xsd:element name="businessEntityExt" type="uddi:businessEntityExt" />
- <xsd:complexType name="businessEntityExt">
- <xsd:sequence>
   <xsd:element ref="uddi:businessEntity" />
   <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="businessInfo" type="uddi:businessInfo" />
- <xsd:complexType name="businessInfo">
- <xsd:sequence>
   <xsd:element ref="uddi:name" maxOccurs="unbounded" />
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:serviceInfos" />
  </xsd:sequence>
  <xsd:attribute name="businessKey" type="uddi:businessKey" use="required" />
  </xsd:complexType>
  <xsd:element name="businessInfos" type="uddi:businessInfos" />
- <xsd:complexType name="businessInfos">
- <xsd:sequence>
   <xsd:element ref="uddi:businessInfo" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="businessKey" type="uddi:businessKey" />
  <xsd:element name="businessService" type="uddi:businessService" />
- <xsd:complexType name="businessService">
- <xsd:sequence>
   <xsd:element ref="uddi:name" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:bindingTemplates" minOccurs="0" />
   <xsd:element ref="uddi:categoryBag" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="serviceKey" type="uddi:serviceKey" use="required" />
  <xsd:attribute name="businessKey" type="uddi:businessKey" use="optional" />
  </xsd:complexType>
  <xsd:element name="businessServices" type="uddi:businessServices" />
- <xsd:complexType name="businessServices">
- <xsd:sequence>
   <xsd:element ref="uddi:businessService" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="categoryBag" type="uddi:categoryBag" />
- <xsd:complexType name="categoryBag">
- <xsd:sequence>
   <xsd:element ref="uddi:keyedReference" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="completionStatus" type="string" />
  <xsd:element name="contact" type="uddi:contact" />
- <xsd:complexType name="contact">
- <xsd:sequence>
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:personName" />
   <xsd:element ref="uddi:phone" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:email" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:address" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="useType" type="string" use="optional" />
  </xsd:complexType>
  <xsd:element name="contacts" type="uddi:contacts" />
- <xsd:complexType name="contacts">
- <xsd:sequence>
   <xsd:element ref="uddi:contact" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="description" type="uddi:description" />
- <xsd:complexType name="description">
- <xsd:simpleContent>
- <xsd:extension base="string">
    <xsd:attribute ref="xml:lang" />
   </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="discoveryURL" type="uddi:discoveryURL" />
- <xsd:complexType name="discoveryURL">
- <xsd:simpleContent>
- <xsd:extension base="string">
    <xsd:attribute name="useType" type="string" use="required" />
   </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="discoveryURLs" type="uddi:discoveryURLs" />
- <xsd:complexType name="discoveryURLs">
- <xsd:sequence>
   <xsd:element ref="uddi:discoveryURL" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="dispositionReport" type="uddi:dispositionReport" />
- <xsd:complexType name="dispositionReport">
- <xsd:sequence>
   <xsd:element ref="uddi:result" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="email" type="uddi:email" />
- <xsd:complexType name="email">
- <xsd:simpleContent>
- <xsd:extension base="string">
    <xsd:attribute name="useType" type="string" use="optional" />
   </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="errInfo" type="uddi:errInfo" />
- <xsd:complexType name="errInfo">
- <xsd:simpleContent>
- <xsd:extension base="string">
    <xsd:attribute name="errCode" type="string" use="required" />
   </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="findQualifier" type="string" />
  <xsd:element name="findQualifiers" type="uddi:findQualifiers" />
- <xsd:complexType name="findQualifiers">
- <xsd:sequence>
   <xsd:element ref="uddi:findQualifier" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="fromKey" type="uddi:businessKey" />
  <xsd:element name="hostingRedirector" type="uddi:hostingRedirector" />
- <xsd:complexType name="hostingRedirector">
  <xsd:attribute name="bindingKey" type="uddi:bindingKey" use="required" />
 </xsd:complexType>
  <xsd:element name="identifierBag" type="uddi:identifierBag" />
- <xsd:complexType name="identifierBag">
- <xsd:sequence>
   <xsd:element ref="uddi:keyedReference" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="instanceDetails" type="uddi:instanceDetails" />
- <xsd:complexType name="instanceDetails">
- <xsd:sequence>
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:overviewDoc" minOccurs="0" />
   <xsd:element ref="uddi:instanceParms" minOccurs="0" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="instanceParms" type="string" />
  <xsd:element name="keyedReference" type="uddi:keyedReference" />
- <xsd:complexType name="keyedReference">
  <xsd:attribute name="tModelKey" type="uddi:tModelKey" use="optional" />
  <xsd:attribute name="keyName" type="string" use="optional" />
  <xsd:attribute name="keyValue" type="string" use="required" />
 </xsd:complexType>
  <xsd:element name="keysOwned" type="uddi:keysOwned" />
- <xsd:complexType name="keysOwned">
- <xsd:sequence>
   <xsd:element ref="uddi:fromKey" minOccurs="0" />
   <xsd:element ref="uddi:toKey" minOccurs="0" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="name" type="uddi:name" />
- <xsd:complexType name="name">
- <xsd:simpleContent>
- <xsd:extension base="string">
    <xsd:attribute ref="xml:lang" use="optional" />
   </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="overviewDoc" type="uddi:overviewDoc" />
- <xsd:complexType name="overviewDoc">
- <xsd:sequence>
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:overviewURL" minOccurs="0" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="overviewURL" type="string" />
  <xsd:element name="personName" type="string" />
  <xsd:element name="phone" type="uddi:phone" />
- <xsd:complexType name="phone">
- <xsd:simpleContent>
- <xsd:extension base="string">
    <xsd:attribute name="useType" type="string" use="optional" />
   </xsd:extension>
  </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="publisherAssertion" type="uddi:publisherAssertion" />
- <xsd:complexType name="publisherAssertion">
- <xsd:sequence>
   <xsd:element ref="uddi:fromKey" />
   <xsd:element ref="uddi:toKey" />
   <xsd:element ref="uddi:keyedReference" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="relatedBusinessInfo" type="uddi:relatedBusinessInfo" />
- <xsd:complexType name="relatedBusinessInfo">
- <xsd:sequence>
   <xsd:element ref="uddi:businessKey" />
   <xsd:element ref="uddi:name" maxOccurs="unbounded" />
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:sharedRelationships" maxOccurs="2" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="relatedBusinessInfos" type="uddi:relatedBusinessInfos" />
- <xsd:complexType name="relatedBusinessInfos">
- <xsd:sequence>
   <xsd:element ref="uddi:relatedBusinessInfo" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="result" type="uddi:result" />
- <xsd:complexType name="result">
- <xsd:sequence>
   <xsd:element ref="uddi:errInfo" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="keyType" type="uddi:keyType" use="optional" />
  <xsd:attribute name="errno" type="int" use="required" />
  </xsd:complexType>
  <xsd:element name="serviceInfo" type="uddi:serviceInfo" />
- <xsd:complexType name="serviceInfo">
- <xsd:sequence>
   <xsd:element ref="uddi:name" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="serviceKey" type="uddi:serviceKey" use="required" />
  <xsd:attribute name="businessKey" type="uddi:businessKey" use="required" />
  </xsd:complexType>
  <xsd:element name="serviceInfos" type="uddi:serviceInfos" />
- <xsd:complexType name="serviceInfos">
- <xsd:sequence>
   <xsd:element ref="uddi:serviceInfo" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="serviceKey" type="uddi:serviceKey" />
  <xsd:element name="sharedRelationships" type="uddi:sharedRelationships" />
- <xsd:complexType name="sharedRelationships">
- <xsd:sequence>
   <xsd:element ref="uddi:keyedReference" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="direction" type="uddi:direction" use="required" />
  </xsd:complexType>
  <xsd:element name="tModel" type="uddi:tModel" />
- <xsd:complexType name="tModel">
- <xsd:sequence>
   <xsd:element ref="uddi:name" />
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:overviewDoc" minOccurs="0" />
   <xsd:element ref="uddi:identifierBag" minOccurs="0" />
   <xsd:element ref="uddi:categoryBag" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="tModelKey" type="uddi:tModelKey" use="required" />
  <xsd:attribute name="operator" type="string" use="optional" />
  <xsd:attribute name="authorizedName" type="string" use="optional" />
  </xsd:complexType>
  <xsd:element name="tModelBag" type="uddi:tModelBag" />
- <xsd:complexType name="tModelBag">
- <xsd:sequence>
   <xsd:element ref="uddi:tModelKey" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="tModelInfo" type="uddi:tModelInfo" />
- <xsd:complexType name="tModelInfo">
- <xsd:sequence>
   <xsd:element ref="uddi:name" />
  </xsd:sequence>
  <xsd:attribute name="tModelKey" type="uddi:tModelKey" use="required" />
  </xsd:complexType>
  <xsd:element name="tModelInfos" type="uddi:tModelInfos" />
- <xsd:complexType name="tModelInfos">
- <xsd:sequence>
   <xsd:element ref="uddi:tModelInfo" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="tModelInstanceDetails" type="uddi:tModelInstanceDetails" />
- <xsd:complexType name="tModelInstanceDetails">
- <xsd:sequence>
   <xsd:element ref="uddi:tModelInstanceInfo" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="tModelInstanceInfo" type="uddi:tModelInstanceInfo" />
- <xsd:complexType name="tModelInstanceInfo">
- <xsd:sequence>
   <xsd:element ref="uddi:description" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:instanceDetails" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="tModelKey" type="uddi:tModelKey" use="required" />
  </xsd:complexType>
  <xsd:element name="tModelKey" type="uddi:tModelKey" />
  <xsd:element name="toKey" type="uddi:businessKey" />
  <xsd:element name="uploadRegister" type="string" />
- <!--  Type and element definitions for input messages
  -->
  <xsd:element name="add_publisherAssertions" type="uddi:add_publisherAssertions" />
- <xsd:complexType name="add_publisherAssertions">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:publisherAssertion" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="delete_binding" type="uddi:delete_binding" />
- <xsd:complexType name="delete_binding">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:bindingKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="delete_business" type="uddi:delete_business" />
- <xsd:complexType name="delete_business">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:businessKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="delete_publisherAssertions" type="uddi:delete_publisherAssertions" />
- <xsd:complexType name="delete_publisherAssertions">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:publisherAssertion" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="delete_service" type="uddi:delete_service" />
- <xsd:complexType name="delete_service">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:serviceKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="delete_tModel" type="uddi:delete_tModel" />
- <xsd:complexType name="delete_tModel">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:tModelKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="discard_authToken" type="uddi:discard_authToken" />
- <xsd:complexType name="discard_authToken">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="find_binding" type="uddi:find_binding" />
- <xsd:complexType name="find_binding">
- <xsd:sequence>
   <xsd:element ref="uddi:findQualifiers" minOccurs="0" />
   <xsd:element ref="uddi:tModelBag" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="maxRows" type="int" use="optional" />
  <xsd:attribute name="serviceKey" type="uddi:serviceKey" use="required" />
  </xsd:complexType>
  <xsd:element name="find_business" type="uddi:find_business" />
- <xsd:complexType name="find_business">
- <xsd:sequence>
   <xsd:element ref="uddi:findQualifiers" minOccurs="0" />
   <xsd:element ref="uddi:name" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:identifierBag" minOccurs="0" />
   <xsd:element ref="uddi:categoryBag" minOccurs="0" />
   <xsd:element ref="uddi:tModelBag" minOccurs="0" />
   <xsd:element ref="uddi:discoveryURLs" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="maxRows" type="int" use="optional" />
  </xsd:complexType>
  <xsd:element name="find_relatedBusinesses" type="uddi:find_relatedBusinesses" />
- <xsd:complexType name="find_relatedBusinesses">
- <xsd:sequence>
   <xsd:element ref="uddi:findQualifiers" minOccurs="0" />
   <xsd:element ref="uddi:businessKey" />
   <xsd:element ref="uddi:keyedReference" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="maxRows" type="int" use="optional" />
  </xsd:complexType>
  <xsd:element name="find_service" type="uddi:find_service" />
- <xsd:complexType name="find_service">
- <xsd:sequence>
   <xsd:element ref="uddi:findQualifiers" minOccurs="0" />
   <xsd:element ref="uddi:name" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:categoryBag" minOccurs="0" />
   <xsd:element ref="uddi:tModelBag" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="maxRows" type="int" use="optional" />
  <xsd:attribute name="businessKey" type="uddi:businessKey" use="optional" />
  </xsd:complexType>
  <xsd:element name="find_tModel" type="uddi:find_tModel" />
- <xsd:complexType name="find_tModel">
- <xsd:sequence>
   <xsd:element ref="uddi:findQualifiers" minOccurs="0" />
   <xsd:element ref="uddi:name" minOccurs="0" />
   <xsd:element ref="uddi:identifierBag" minOccurs="0" />
   <xsd:element ref="uddi:categoryBag" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="maxRows" type="int" use="optional" />
  </xsd:complexType>
  <xsd:element name="get_assertionStatusReport" type="uddi:get_assertionStatusReport" />
- <xsd:complexType name="get_assertionStatusReport">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:completionStatus" minOccurs="0" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="get_authToken" type="uddi:get_authToken" />
- <xsd:complexType name="get_authToken">
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="userID" type="string" use="required" />
  <xsd:attribute name="cred" type="string" use="required" />
 </xsd:complexType>
  <xsd:element name="get_bindingDetail" type="uddi:get_bindingDetail" />
- <xsd:complexType name="get_bindingDetail">
- <xsd:sequence>
   <xsd:element ref="uddi:bindingKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="get_businessDetail" type="uddi:get_businessDetail" />
- <xsd:complexType name="get_businessDetail">
- <xsd:sequence>
   <xsd:element ref="uddi:businessKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="get_businessDetailExt" type="uddi:get_businessDetailExt" />
- <xsd:complexType name="get_businessDetailExt">
- <xsd:sequence>
   <xsd:element ref="uddi:businessKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="get_publisherAssertions" type="uddi:get_publisherAssertions" />
- <xsd:complexType name="get_publisherAssertions">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="get_registeredInfo" type="uddi:get_registeredInfo" />
- <xsd:complexType name="get_registeredInfo">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="get_serviceDetail" type="uddi:get_serviceDetail" />
- <xsd:complexType name="get_serviceDetail">
- <xsd:sequence>
   <xsd:element ref="uddi:serviceKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="get_tModelDetail" type="uddi:get_tModelDetail" />
- <xsd:complexType name="get_tModelDetail">
- <xsd:sequence>
   <xsd:element ref="uddi:tModelKey" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="save_binding" type="uddi:save_binding" />
- <xsd:complexType name="save_binding">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:bindingTemplate" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="save_business" type="uddi:save_business" />
- <xsd:complexType name="save_business">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:businessEntity" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:uploadRegister" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="save_service" type="uddi:save_service" />
- <xsd:complexType name="save_service">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:businessService" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="save_tModel" type="uddi:save_tModel" />
- <xsd:complexType name="save_tModel">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:tModel" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:uploadRegister" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="set_publisherAssertions" type="uddi:set_publisherAssertions" />
- <xsd:complexType name="set_publisherAssertions">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
   <xsd:element ref="uddi:publisherAssertion" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="validate_values" type="uddi:validate_values" />
- <xsd:complexType name="validate_values">
- <xsd:choice>
   <xsd:element ref="uddi:businessEntity" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:businessService" minOccurs="0" maxOccurs="unbounded" />
   <xsd:element ref="uddi:tModel" minOccurs="0" maxOccurs="unbounded" />
  </xsd:choice>
  <xsd:attribute name="generic" type="string" use="required" />
  </xsd:complexType>
- <!--  Type and element definitions for response messages
  -->
  <xsd:element name="assertionStatusReport" type="uddi:assertionStatusReport" />
- <xsd:complexType name="assertionStatusReport">
- <xsd:sequence>
   <xsd:element ref="uddi:assertionStatusItem" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="authToken" type="uddi:authToken" />
- <xsd:complexType name="authToken">
- <xsd:sequence>
   <xsd:element ref="uddi:authInfo" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="bindingDetail" type="uddi:bindingDetail" />
- <xsd:complexType name="bindingDetail">
- <xsd:sequence>
   <xsd:element ref="uddi:bindingTemplate" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="businessDetail" type="uddi:businessDetail" />
- <xsd:complexType name="businessDetail">
- <xsd:sequence>
   <xsd:element ref="uddi:businessEntity" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="businessDetailExt" type="uddi:businessDetailExt" />
- <xsd:complexType name="businessDetailExt">
- <xsd:sequence>
   <xsd:element ref="uddi:businessEntityExt" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="businessList" type="uddi:businessList" />
- <xsd:complexType name="businessList">
- <xsd:sequence>
   <xsd:element ref="uddi:businessInfos" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="publisherAssertions" type="uddi:publisherAssertions" />
- <xsd:complexType name="publisherAssertions">
- <xsd:sequence>
   <xsd:element ref="uddi:publisherAssertion" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="authorizedName" type="string" use="required" />
  </xsd:complexType>
  <xsd:element name="registeredInfo" type="uddi:registeredInfo" />
- <xsd:complexType name="registeredInfo">
- <xsd:sequence>
   <xsd:element ref="uddi:businessInfos" />
   <xsd:element ref="uddi:tModelInfos" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="relatedBusinessesList" type="uddi:relatedBusinessesList" />
- <xsd:complexType name="relatedBusinessesList">
- <xsd:sequence>
   <xsd:element ref="uddi:businessKey" />
   <xsd:element ref="uddi:relatedBusinessInfos" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="serviceDetail" type="uddi:serviceDetail" />
- <xsd:complexType name="serviceDetail">
- <xsd:sequence>
   <xsd:element ref="uddi:businessService" minOccurs="0" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="serviceList" type="uddi:serviceList" />
- <xsd:complexType name="serviceList">
- <xsd:sequence>
   <xsd:element ref="uddi:serviceInfos" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="tModelDetail" type="uddi:tModelDetail" />
- <xsd:complexType name="tModelDetail">
- <xsd:sequence>
   <xsd:element ref="uddi:tModel" maxOccurs="unbounded" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  <xsd:element name="tModelList" type="uddi:tModelList" />
- <xsd:complexType name="tModelList">
- <xsd:sequence>
   <xsd:element ref="uddi:tModelInfos" />
  </xsd:sequence>
  <xsd:attribute name="generic" type="string" use="required" />
  <xsd:attribute name="operator" type="string" use="required" />
  <xsd:attribute name="truncated" type="uddi:truncated" use="optional" />
  </xsd:complexType>
  </xsd:schema>

报错:根级别数据无效。请各位大虾banging!!!


--  作者:mscorp
--  发布时间:3/27/2006 9:33:00 AM

--  
其实我觉得楼主应该标明转帖才对啊,毕竟是别人的东西。
--  作者:wanion
--  发布时间:3/29/2006 4:22:00 PM

--  
好东西!
--  作者:zhwpost
--  发布时间:4/3/2006 9:11:00 AM

--  
不错
--  作者:nonotoday
--  发布时间:4/3/2006 4:16:00 PM

--  
好东西....拜读。。。
--  作者:sajia
--  发布时间:4/5/2006 9:05:00 PM

--  
看看!!!!
--  作者:dreamer402
--  发布时间:4/13/2006 5:24:00 PM

--  
学习ing
--  作者:SmartFox
--  发布时间:4/13/2006 10:41:00 PM

--  
和我看的另一个帖子有部分雷同,至少例子相同。不过讲解很不错
还是顶一下!
--  作者:freefhd
--  发布时间:4/16/2006 11:47:00 PM

--  
简单 明了 good
--  作者:Afanty
--  发布时间:4/18/2006 4:15:00 PM

--  
的确不错呀!
--  作者:zyz95zyz
--  发布时间:4/19/2006 3:35:00 AM

--  
支持!!!!!!!!!!!!

--  作者:lanyinghavy
--  发布时间:4/25/2006 10:43:00 PM

--  
good


--  作者:chafer0516
--  发布时间:4/28/2006 11:16:00 PM

--  
很受启发
--  作者:kelindun
--  发布时间:5/3/2006 10:38:00 PM

--  
en ,chu jie le dian!!
--  作者:tingchao
--  发布时间:5/4/2006 2:44:00 PM

--  
非常感谢!!!!受益匪浅!!
--  作者:iceagelin
--  发布时间:5/8/2006 9:04:00 PM

--  
簡單明了,一下就學習到基本的知識啦`!謝謝樓主

--  作者:janejinz
--  发布时间:5/9/2006 9:03:00 AM

--  
good!
thanks!
--  作者:kimgecko
--  发布时间:5/10/2006 3:13:00 PM

--  
我也支持一下,不错!
--  作者:ben1213
--  发布时间:5/21/2006 3:00:00 PM

--  
写得很好,简单易懂
--  作者:fdcims
--  发布时间:5/22/2006 1:38:00 PM

--  
good
--  作者:kicochen
--  发布时间:6/21/2006 10:39:00 AM

--  
实例+解说,相当精彩...perfect...
--  作者:wisejenny
--  发布时间:6/26/2006 11:09:00 AM

--  
通俗易懂,帮助很大。Thank You !
--  作者:ninikiller
--  发布时间:6/26/2006 11:59:00 AM

--  
这是个给刚入门人看的好贴,谢谢!
--  作者:endlessway
--  发布时间:7/1/2006 11:28:00 AM

--  
简单好用,顶
--  作者:bluezsy
--  发布时间:7/8/2006 9:16:00 AM

--  
学习
--  作者:ctraveler
--  发布时间:7/14/2006 4:03:00 PM

--  
好东西,感谢楼主分享。
--  作者:whoopee
--  发布时间:7/19/2006 10:28:00 AM

--  
确实是好贴,浅显易懂,对于我这个xml菜鸟很受用
--  作者:myoldman
--  发布时间:8/3/2006 10:54:00 AM

--  
好文章顶!
--  作者:xuaijun
--  发布时间:8/5/2006 5:02:00 PM

--  
分析得十分透彻,好!
--  作者:wan_jm
--  发布时间:8/7/2006 8:49:00 PM

--  
sequence中定义的东西有顺序吗?
--  作者:langfanyun11
--  发布时间:8/16/2006 9:57:00 PM

--  
好贴,对新手帮助很大啊。。
--  作者:heasy
--  发布时间:8/22/2006 1:27:00 PM

--  
看了以后受益匪浅,谢谢楼主。
--  作者:lmjanson
--  发布时间:8/25/2006 10:32:00 AM

--  
巨顶!超好的内容,很容易理解,要不看了好多天的XML还不晓得该怎么定义!谢谢楼主!
--  作者:zhugy666
--  发布时间:9/12/2006 12:07:00 PM

--  
写的很不错
--  作者:xushuo
--  发布时间:9/14/2006 12:24:00 PM

--  
very good
--  作者:neudcc
--  发布时间:10/9/2006 3:09:00 PM

--  
不错
--  作者:lelecat2000
--  发布时间:10/11/2006 8:35:00 PM

--  
这帖子太好了,向楼主致敬.
--  作者:xmlhua
--  发布时间:10/13/2006 5:40:00 PM

--  
名副其实的精华
--  作者:XMLbaby
--  发布时间:12/12/2006 11:53:00 AM

--  
原创?
网上面一搜一大把,连标点符号都没变。
也不知道是是抄谁的!
--  作者:cx_hhddy223
--  发布时间:12/20/2006 1:05:00 PM

--  
very good!!
thanks a lot!
--  作者:jj77
--  发布时间:12/22/2006 4:49:00 PM

--  
不错,给我扫盲了。
--  作者:rashblood
--  发布时间:3/17/2007 1:26:00 AM

--  
为什么用的是一个名字空间...
名字空间不太明白
--  作者:emilydavid
--  发布时间:3/26/2007 3:59:00 PM

--  
谢谢楼主
--  作者:tianyazi
--  发布时间:6/1/2007 10:53:00 AM

--  
讲的太好了,如果能有更多的例子,把schema的每种元素的用法都讲一个,那就更好了。
--  作者:seawei
--  发布时间:7/9/2007 5:27:00 PM

--  
楼主介绍的很详细咯,多谢楼主!
--  作者:bw77
--  发布时间:8/1/2007 8:50:00 AM

--  
不懂,用工具直接画出来就是这样的,有啥可介绍的啊
--  作者:uiag
--  发布时间:8/8/2007 10:42:00 AM

--  
good
--  作者:sophieqd
--  发布时间:8/10/2007 10:31:00 AM

--  
3ks
--  作者:hjx_221
--  发布时间:8/23/2007 8:37:00 AM

--  
希望以后多发这样的贴!!!

--  作者:firerocket
--  发布时间:12/26/2007 4:43:00 PM

--  
受益
--  作者:KarLeo
--  发布时间:1/9/2008 12:13:00 PM

--  
See See
--  作者:zzokki
--  发布时间:1/27/2008 8:20:00 PM

--  
太好了   谢谢先!!!!!!!!!
--  作者:phoenix_sun
--  发布时间:2/1/2008 10:14:00 AM

--  
写的很好,谢谢
--  作者:hdl1
--  发布时间:2/15/2008 10:52:00 AM

--  
一个字  好
--  作者:86版dingpin
--  发布时间:2/24/2008 8:35:00 PM

--  
非常感觉LZ,希望以后多发一些这样的贴子......
--  作者:xiaridexue
--  发布时间:3/20/2008 11:32:00 AM

--  
讲的很详细.不错!
--  作者:jinscott
--  发布时间:3/21/2008 10:39:00 PM

--  
精品贴,支持楼主,顶起。
--  作者:jinscott
--  发布时间:3/21/2008 10:41:00 PM

--  
精品贴,很详细,支持楼主,顶起。
--  作者:yagebuqq
--  发布时间:4/1/2008 4:11:00 PM

--  
很好!!学习@!
--  作者:jinwei0502
--  发布时间:4/16/2008 4:30:00 PM

--  
写得简单清晰,谢谢!
--  作者:FFEEDD
--  发布时间:4/23/2008 9:38:00 AM

--  
迷茫啊``不懂
--  作者:文心雕龙—虫子
--  发布时间:5/6/2008 12:50:00 AM

--  
很好啊

--  作者:1500053
--  发布时间:5/10/2008 9:10:00 PM

--  
谢谢,又学到不少东东
--  作者:starrysky_XML
--  发布时间:5/26/2008 9:07:00 PM

--  [讨论]
非常好    谢谢分享
--  作者:johnkee
--  发布时间:5/27/2008 6:47:00 PM

--  
VERY NICE!~
--  作者:quain8807
--  发布时间:10/14/2008 1:56:00 PM

--  
不错,有收获,谢谢
--  作者:melina
--  发布时间:10/23/2008 1:35:00 PM

--  
谢谢楼主,学习中。。。。
--  作者:showsscel
--  发布时间:11/7/2008 9:37:00 PM

--  
顶,不错....
--  作者:xujian2009
--  发布时间:12/14/2009 3:04:00 PM

--  
真的很感谢楼主,讲的很详细,很容易理解。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
671.875ms