W3C home > Mailing lists > Public > xmlschema-dev@w3.org > October 2002

Constraint Specifications in XML Schemas

From: Alexandre Martins <alex.martins@netc.pt>
Date: Fri, 25 Oct 2002 22:52:18 +0100
Message-ID: <003501c27c70$d05b7030$d8021ed5@helena>
To: <xmlschema-dev@w3.org>


Hi!

I've been trying to write a XML vocabulary to describe a relational database
schema, for example:

<DataBase id="teste" url="jdbc:mysql://localhost/teste" user="xano"
passwd="xpto" driver="com.mysql.jdbc.Driver"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="bd-v2.xsd">

  <Table id="Film">
    <Field id="idFilm" type="INTEGER">Film Number</Field>
    <Field id="title" type="VARCHAR" size="40">Title</Field>
    <Field id="year" type="INTEGER">Year</Field>
    <PrimaryKey>
      <KeyField fieldId="idFilm"/>
    </PrimaryKey>
  </Table>
  <Table id="Actor">
    <Field id="idActor" type="INTEGER">Actor Number</Field>
    <Field id="name" type="VARCHAR" size="25">Name</Field>
    <Field id="birthDate" type="DATE">Birthdate</Field>
    <PrimaryKey>
      <KeyField fieldId="idActor"/>
    </PrimaryKey>
  </Table>
  <Table id="FilmActor">
    <Field id="idFilm" type="INTEGER">Film Number</Field>
    <Field id="idActor" type="INTEGER">Actor Number</Field>
    <Field id="character" type="VARCHAR" size="20">Character</Field>
    <PrimaryKey>
      <KeyField fieldId="idFilm"/>
      <KeyField fieldId="idActor"/>
    </PrimaryKey>
    <ForeignKey>
      <FieldRef fieldId="idFilm"/>
      <ForeignTable tableId="Film">
        <ForeignField fieldId="idFilm"/>
      </ForeignTable>
    </ForeignKey>
    <ForeignKey>
      <FieldRef fieldId="idActor"/>
      <ForeignTable tableId="Actor">
        <ForeignField fieldId="idActor"/>
      </ForeignTable>
    </ForeignKey>
  </Table>
</DataBase>

In order to validate certain constraints related with the relational model
rules, I've been developing a XML Schema.
But I've not been able to write a XML Schema constraint to guarantee
that a ForeignKey element content must be a PrimaryKey on the other table
(i've trying with key and keyref).
Is it possible to write this using XML Schema or must I use Relax NG??

Thanks,
Alexandre Martins




_______________________________________________________
Vizzavi Mail powered by Vodafone - http://www.vizzavi.pt
Virus protected by TrendMicro - http://www.antivirus.com
Received on Friday, 25 October 2002 17:51:09 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:34 GMT