org.eclipse.cosmos/tests/resource-modeling/org.eclipse.cosmos.rm.validation.tests/src/test-resources/identity/ValidKeyUnique.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (download) (as text) (annotate)
Wed Aug 20 17:41:18 2008 UTC (17 months, 3 weeks ago) by dwhiteman
Branch: MAIN
CVS Tags: COSMOS_1_0_0, v1_0_0_i13
Branch point for: COSMOS-1_0_0
Changes since 1.11: +1 -1 lines
https://bugs.eclipse.org/bugs/show_bug.cgi?id=237924
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2006 by BEA, BMC, CA, Cisco, Dell, EMC, HP, IBM, Intel, Microsoft, and Sun.  All rights reserved. -->
<!-- Permission to copy, display, and distribute this Service Modeling Language Interop Workshop (SML-IF) XML Document, testing the unique constraint with valid data, in any medium without fee or royalty is hereby granted, provided that you include the following on ALL copies of the SML-IF XML Document, or portions thereof, that you make:
 
1. A link or URL to the SML-IF XML Document at this location: 
http://schemas.serviceml.org/smlif/identity/2006/10/ValidKeyUnique.xml

2. The copyright notice as shown in the SML-IF XML Document.

BEA, BMC, CA, Cisco, Dell, EMC, HP, IBM, Intel, Microsoft, and Sun (collectively, the “Authors᾿) each agree to grant you a royalty-free license, under reasonable, non-discriminatory terms and conditions to their respective patents that they deem necessary to implement the Service Modeling Language Interop Workshop XML Document testing the key constraint with valid data.

THE SML-IF XML DOCUMENT IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE SML-IF XML DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE SML-IF XML DOCUMENT.

The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to the SML-IF XML Document or its contents without specific, written prior permission. Title to copyright in the SML-IF XML Document will at all times remain with the Authors. -->
<model xmlns="http://www.w3.org/2008/09/sml-if" schemaComplete="true">
  <identity>
    <name>ValidKeyUnique</name>
    <baseURI>
		http://interop.serviceml.org
	</baseURI>
    <description>
      Verify that a model with a key and unique constraint
      is valid if the field values are unique, though some 
      field values for the unique constraint may be missing.
    </description>
    
  </identity>
  <definitions>
    <document>
      <data> 
      <xs:schema 
        targetNamespace="urn:university"
        elementFormDefault="qualified"
        xmlns:tns="urn:university"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:sml="http://www.w3.org/2008/09/sml"
        xmlns:smlfn=
              "http://www.w3.org/2008/09/sml-function">

        <xs:element name="EnrolledStudent"/>
        <xs:element name="Student" 
                    type="tns:StudentType"/>
        <xs:element name="University" 
                    type="tns:UniversityType">
          <xs:annotation>
            <xs:appinfo>
              <sml:unique name="StudentSSNisUnique">
                <sml:selector xpath="smlfn:deref(tns:EnrolledStudents/tns:EnrolledStudent)"/>
                <sml:field xpath="tns:Name"/>
                <sml:field xpath="@SSN"/>
              </sml:unique>
              <sml:key name="StudentIDisKey">
                <sml:selector xpath="smlfn:deref(tns:EnrolledStudents/tns:EnrolledStudent)"/>
                <sml:field xpath="tns:ID"/>
              </sml:key>
            </xs:appinfo>
          </xs:annotation>
        </xs:element>

        <xs:complexType name="StudentType">
          <xs:sequence>
            <xs:element name="ID" type="xs:string"/>
            <xs:element name="Name" type="xs:string"/>
          </xs:sequence>
          <xs:attribute name="SSN" type="xs:string" 
                        use="optional"/>
        </xs:complexType>

        <xs:complexType name="UniversityType">
          <xs:sequence>
            <xs:element name="Name" type="xs:string"/>
            <xs:element name="EnrolledStudents" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="tns:EnrolledStudent" 
                              maxOccurs="unbounded"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:schema>
      </data>
    </document>
  </definitions>
  <instances>
    <document>
      <docinfo>
        <aliases>
          <alias>Student1</alias>
        </aliases>
      </docinfo>
      <data>
        <Student xmlns="urn:university"
                 SSN="123-22-4444">
          <ID>1000</ID>
          <Name>John</Name>
        </Student>
      </data>
    </document>
    <document>
      <docinfo> 
      <aliases>
        <alias>Student2</alias>
      </aliases>
      </docinfo>
      <data>
        <Student xmlns="urn:university" 
                 SSN="333-22-4444">
          <ID>1001</ID>
          <Name>John</Name>
        </Student>
      </data>
    </document>
    <document>
      <docinfo>
        <aliases>
          <alias>Student3</alias>
        </aliases>
      </docinfo>
      <data>
        <Student xmlns="urn:university">
          <!-- Missing SSN, note that the value of
             Name is same as that for Student1 and
             Student 2 -->
          <ID>1002</ID>
          <Name>John</Name>
        </Student>
      </data>
    </document>
    <document>
      <docinfo>
        <aliases>
          <alias>Student4</alias>
        </aliases>
      </docinfo>
      <data>
        <Student xmlns="urn:university"
                 SSN="111-22-3333">
          <ID>1004</ID>
          <Name>Ray</Name>
        </Student>
      </data>
    </document>
    <document>
      <data>
        <University xmlns="urn:university"
         xmlns:sml="http://www.w3.org/2008/09/sml">
          <Name>MIT</Name>
          <EnrolledStudents>
            <EnrolledStudent sml:ref="true">
              <sml:uri>Student1</sml:uri>
            </EnrolledStudent>
            <EnrolledStudent sml:ref="true">
              <sml:uri>Student2</sml:uri>
            </EnrolledStudent>
            <EnrolledStudent sml:ref="true">
              <sml:uri>Student3</sml:uri>
            </EnrolledStudent>
            <EnrolledStudent sml:ref="true">
              <sml:uri>Student4</sml:uri>
            </EnrolledStudent>
          </EnrolledStudents>
        </University>
      </data>
    </document>
  </instances>
</model>