[
Lists Home |
Date Index |
Thread Index
]
- To: xml-dev@lists.xml.org
- Subject: Re: [xml-dev] schema keyref to other schema.
- From: "Rick Jelliffe" <ricko@allette.com.au>
- Date: Wed, 23 Feb 2005 20:41:19 +1100 (EST)
- Importance: Normal
- User-agent: SquirrelMail/1.4.2
> 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!
There are two solutions:
1) Change your file structure. For example, use entities or XInclude or
XSLT to incorporate the files into a single one. Or buy a nice DBMS and
move up to XQuery.
2) Use a schema language that allows cross-document validation. The two
to consider are Schematon or Linkit (which is useful for larger or more
complex systems of documents, and for data integrity-checking).
In Schematron, your constraint can be expressed by validating
testForeignKey.xml with
<pattern>
<rule context="foreignKey">
<assert test="document('primary-key.xml')//primaryKey=current()">
The foreignKey element should contain a value for which there
is a correspondinh primaryKey element in the TestKey.xml file.
</assert>
</rule>
</pattern>
without needing any key or keyref declarations in the XML Schemas schema.
XML Schema doesn't give any bangs per buck for sets of related documents.
Schematron is useful for augmenting XML Schemas to cope with practical
problems like yours.
Cheers
Rick Jelliffe
https://www.topologi.com
|