У меня есть следующий код XML:Атрибутов XSD схемы рецензировать уникальные иды других атрибутов элементов
<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE bank SYSTEM "bank.dtd">-->
<bank xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="bank.xsd">
<accounts>
<savings_accounts>
<savings_account id="a1" interest="0.03">
<balance>2500</balance>
</savings_account>
<savings_account id="a2" interest="0.03">
<balance>15075</balance>
</savings_account>
</savings_accounts>
<checking_accounts>
<checking_account id="a3">
<balance>4025</balance>
</checking_account>
<checking_account id="a4">
<balance>-125</balance>
</checking_account>
<checking_account id="a5">
<balance>325</balance>
</checking_account>
</checking_accounts>
</accounts>
<customers>
<customer id="c1">
<name>Ben Richerdson</name>
<address>Park Drive 2</address>
</customer>
<customer id="c2">
<name>Marc Wretcher</name>
<address>Mill Drive 75</address>
</customer>
<customer id="c3">
<name>Angel Steady</name>
<address>Lake Sight 15</address>
</customer>
</customers>
<customer_accounts>
<customer_account c_id="c1" ac_id="a2"/>
<customer_account c_id="c1" ac_id="a3"/>
<customer_account c_id="c2" ac_id="a4"/>
<customer_account c_id="c3" ac_id="a1"/>
<customer_account c_id="c3" ac_id="a5"/>
</customer_accounts>
</bank>
И я также написал соответствующую схему XSD для XML следующим образом:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bank">
<xs:complexType>
<xs:sequence>
<xs:element name="accounts">
<xs:complexType>
<xs:sequence>
<xs:element name="savings_accounts">
<xs:complexType>
<xs:sequence>
<xs:element name="savings_account" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="balance">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="-5000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="interest" type="xs:double" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="onesavings_accountforEachid">
<xs:selector xpath="xs:savings_account"/>
<xs:field xpath="@id"/>
</xs:unique>
</xs:element>
<xs:element name="checking_accounts">
<xs:complexType>
<xs:sequence>
<xs:element name="checking_account" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="balance">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="-5000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="onechecking_accountforEachid">
<xs:selector xpath="xs:checking_account"/>
<xs:field xpath="@id"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="customers">
<xs:complexType>
<xs:sequence>
<xs:element name="customer" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:unique name="onecustomerforEachid">
<xs:selector xpath="xs:customer"/>
<xs:field xpath="@id"/>
</xs:unique>
</xs:element>
<xs:element name="customer_accounts">
<xs:complexType>
<xs:sequence>
<xs:element name="customer_account" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="c_id" type="xs:string" use="required"/>
<xs:attribute name="ac_id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Поэтому мой вопрос: как я могу ссылаться на c_id = "c1" и ac_id = "a2" customer_account на соответствующий идентификатор, определенный в учетных записях. «c_id» относится к клиентам, а «ac_id» относится к учетным записям.
Я искал, что можно сделать то же самое, но вместо этого я должен добавить id в качестве элементов и определить их как закрытый ключ, а затем внешний ключ.
благодарит за вашу помощь!