java - 在另一个 xsd 中引用另一个 xsd 元素?

标签 java xml web-services xsd

我有下面的xsd。

账户详情.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 部分

谢谢!

最佳答案

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

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

此别名具有正确的值,因为 AccountDetails.xsd 中定义的 Account 元素恰好属于该命名空间

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>  

关于java - 在另一个 xsd 中引用另一个 xsd 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19834004/

相关文章:

java - 编译基本 Hello World 程序时抛出 ClassNotFoundException

java - 在运行时更改 Web 应用程序的状态

java - 如何将 DTO 传递到 Restful Web 服务

Android - 创建 RESTful WebService - 在移动设备上托管

java - 如何远程调试主项目 lib 目录中存在的支持 jar(项目)

java - 按位右移和 0xFF | java

java - 如何让 Servlet Filter 处理嵌入式 Jetty 中的欢迎文件?

c# - 如何在我的 XML 中找到特定节点?

sql - 以编程方式将 XML 数据导入 MS SQL 服务器

java - 使用 Jetty maven 插件部署 war