[Home] [By Thread] [By Date] [Recent Entries]

  • To: xml-dev@l...
  • Subject: schema keyref to other schema.
  • From: Stephan Dick <stephan.dick@s...>
  • Date: Tue, 22 Feb 2005 11:45:30 +0100
  • User-agent: Mozilla Thunderbird 0.9 (Windows/20041103)

Hi

I defined two schemas somewhat like a RDB model. One holds a primary key 
and the other one a foreign key pointing to the primary key. Now the 
schemas are valid (in Stylus Studio XML) but i can't get the xml file to 
validate. How can i tell the "slave"-xml file to include the "master" 
file? Any help is really appreciated!

key.xsd
-------
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:test="http://www.test.com/test" 
targetNamespace="http://www.test.com/test" 
elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="primary" type="xs:string">
                    <xs:key name="PrimaryKey">
                        <xs:selector xpath="./primary"/>
                        <xs:field xpath="."/>
                    </xs:key>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

foreignKey.xsd
--------------
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:test="http://www.test.com/test" elementFormDefault="qualified" 
attributeFormDefault="unqualified">
    <xs:import namespace="http://www.test.com/test" 
schemaLocation="Key.xsd"/>
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="foreignKey" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
        <xs:keyref name="ForeignKeyRef" refer="test:PrimaryKey">
            <xs:selector xpath="./foreignKey"/>
            <xs:field xpath="."/>
        </xs:keyref>
    </xs:element>
</xs:schema>

TestKey.xml -> valid!
------------
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.test.com/test"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.test.com/test D:\Temp\FK\Key.xsd">

    <primary>Primary</primary>
</root>

TestForeignKey.xml Error: The keyref 'ForeignKeyRef' refers to a 
key/unique that is out of scope.
------------------
<?xml version="1.0" encoding="UTF-8"?>
<root     xmlns:test="http://www.test.com/test"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="D:\Temp\FK\ForeignKey.xsd">
    <foreignKey>Primary</foreignKey>
</root>



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member