OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   key constraint question

[ Lists Home | Date Index | Thread Index ]

I am trying to define a serialized Database to XML, via a XML Schema.

Problem

Table A has two relations two Table B. One is required the other is
optional.

How do I define that the TableB with relationship="needed" is mandatory.

I can define a unique constraint under TableA that indicates that
TableB/primaryKey be unique. This would prohibit someone defining
Two TableB's with the same relationship, i.e. two needed or two optional.
  
But I do not know how to ensure there is a TableB with the relationship of
"needed".

Instance Document:

<TableA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:noNamespaceSchemaLocation="TestSchema.xsd">
  <primaryKey>xx</primaryKey>
  <TableB relationship="needed">
    <primaryKey>yy</primaryKey>
  </TableB>
  <TableB relationship="optional">
    <primaryKey>yy</primaryKey>
  </TableB>
</TableA>

Schema Document

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="TableA">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="primaryKey"/>
        <xs:element name="TableB" type="TableB_Type" maxOccurs="2"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="TableB_Type">
     <xs:sequence>
      <xs:element name="primaryKey" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="relationship">
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:pattern value="needed|optional"/>
                  </xs:restriction>
                </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:schema>


Bill Riegel
LandMark Graphics
713-839-3388





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS