Ich habe die folgende XML-Code:Attribute XSD Schemas eindeutig Iden des anderen Elements Schiedsrichter Attribute
<?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>
Und ich schrieb auch das entsprechende XSD-Schema für die XML wie folgt:
<?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>
Meine Frage ist also, wie kann ich die c_id = "c1" und ac_id = "a2" von customer_account auf die entsprechende ID, wie in den Konten definiert, verweisen. 'c_id' bezieht sich auf Kunden und 'ac_id' bezieht sich auf Konten.
Ich sah, dass es möglich ist, dasselbe zu tun, aber stattdessen muss ich IDs als Elemente hinzufügen und sie als privaten Schlüssel und später als Fremdschlüssel definieren.
danke für Ihre Hilfe!