我是一名刚接触
XML和Web服务的java程序员.我正在尝试创建一个符合XSD(我没写过)的xml文档,其中包含下面的代码片段.我想要做的是调用此Web服务来复制邮件.有一个名为copy的元素,它是抽象类型“tns:CopyRequest”.由于元素的类型是抽象的,Eclipse告诉我我不能创建一个.有一个CopyMailingRequest类型(听起来就像我想要的那样),但我不确定如何实例化它,因为没有扩展该类型的元素.我错过了什么?
<xs:element name="copy" nillable="true" type="tns:CopyRequest"/> <xs:complexType name="CopyMailingRequest"> <xs:complexContent> <xs:extension base="tns:CopyRequest"> <xs:sequence> <xs:element name="fromId" type="tns:MailingId"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="StandardMailingId"> <xs:complexContent> <xs:extension base="tns:MailingId"/> </xs:complexContent> </xs:complexType> <xs:complexType name="MailingId"> <xs:complexContent> <xs:extension base="tns:ObjectId"/> </xs:complexContent> </xs:complexType> <xs:complexType name="CopyRequest" abstract="true"> <xs:sequence> <xs:element name="newName" type="xs:string"/> </xs:sequence> </xs:complexType>
为了更容易理解,下面是一个最小修改的模式(添加了一个带有任意targetNamespace的schema元素,并为ObjectId添加了一个虚拟定义):
原文链接:https://www.f2er.com/xml/292030.html<?xml version="1.0" encoding="utf-8" ?> <!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) --> <xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" xmlns:tns="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="copy" nillable="true" type="tns:CopyRequest"/> <xs:complexType name="CopyMailingRequest"> <xs:complexContent> <xs:extension base="tns:CopyRequest"> <xs:sequence> <xs:element name="fromId" type="tns:MailingId"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="StandardMailingId"> <xs:complexContent> <xs:extension base="tns:MailingId"/> </xs:complexContent> </xs:complexType> <xs:complexType name="MailingId"> <xs:complexContent> <xs:extension base="tns:ObjectId"/> </xs:complexContent> </xs:complexType> <xs:complexType name="ObjectId"/> <xs:complexType name="CopyRequest" abstract="true"> <xs:sequence> <xs:element name="newName" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema>
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <!-- Sample XML generated by QTAssistant (http://www.paschidev.com) --> <copy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CopyMailingRequest" xmlns="http://tempuri.org/XMLSchema.xsd"> <newName>newName1</newName> <fromId/> </copy>
这里的要点是xsi:type =“CopyMailingRequest”;这是您在场景中提供具体类型的方式.