[
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
|