2

我有以下xsd。

AccountDetails.xsd

<?xml version="1.0" encoding="UTF-8"?>  
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://webservices.samples.blog.com" targetNamespace="http://webservices.samples.blog.com" elementFormDefault="qualified" attributeFormDefault="unqualified">  
      <xs:element name="Account" type="Account"/>  
      <xs:complexType name="Account">  
           <xs:sequence>  
                <xs:element name="AccountNumber" type="xs:string"/>  
                <xs:element name="AccountName" type="xs:string"/>  
                <xs:element name="AccountBalance" type="xs:double"/>  
                <xs:element name="AccountStatus" type="EnumAccountStatus"/>  
           </xs:sequence>  
      </xs:complexType>  
      <xs:simpleType name="EnumAccountStatus">  
           <xs:restriction base="xs:string">  
                <xs:enumeration value="Active"/>  
                <xs:enumeration value="Inactive"/>  
           </xs:restriction>  
      </xs:simpleType>  
 </xs:schema>  

通用的.xsd

<?xml version="1.0" encoding="UTF-8"?>  
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://com/blog/samples/webservices/accountservice" xmlns:account="http://webservices.samples.blog.com" targetNamespace="http://com/blog/samples/webservices/accountservice" elementFormDefault="qualified">  
      <xsd:import namespace="http://webservices.samples.blog.com" schemaLocation="AccountDetails.xsd"/>  
      <xsd:element name="AccountDetailsResponse">  
           <xsd:complexType>  



              ***//TO DO : here i need to refer the element name 'Account' which is there in AccountDetails.xsd. Here i can have list of Accounts. How can i refer that?***



           </xsd:complexType>  
      </xsd:element>  
      <xsd:element name="AccountDetailsEnRequest">  
           <xsd:complexType>  
                <xsd:sequence>  
                     <xsd:element name="AccountDetailsEnum" type="account:EnumAccountStatus"/>  
                </xsd:sequence>  
           </xsd:complexType>  
      </xsd:element>  
 </xsd:schema>  

在上面的 Generic.xsd 中,在 TO DO 部分我需要引用 AccountDetails.xsd 中的元素名称“Account”。在这里,我可以列出“帐户”。我如何在 Generic.xsd 的 To DO 部分编写该代码?请帮我填写 Generic.xsd 中的 TO DO 部分

谢谢!

4

1 回答 1

1

您可以使用type="account:Account". 这意味着您将Account使用 alias 引用命名空间中的元素account。此别名已在中定义Generic.xsd

xmlns:account="http://webservices.samples.blog.com"

这个别名有正确的值,因为Account定义的元素AccountDetails.xsd恰好属于那个命名空间

targetNamespace="http://webservices.samples.blog.com"

所以你可以像这样引用元素:

<xsd:element name="AccountDetailsResponse">  
   <xsd:complexType>  
       <xs:element name="acc" type="account:Account" maxOccurs="unbounded"/>
   </xsd:complexType>  
</xsd:element>  
于 2013-11-07T10:54:06.097 回答