我有下面的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/