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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (download) (as text) (annotate)
Tue Jan 27 14:08:20 2009 UTC (12 months, 1 week ago) by dwhiteman
Branch: MAIN
Changes since 1.2: +18 -27 lines
NEW - bug 258673: [sml val] Test case updates based on SML wg comments
https://bugs.eclipse.org/bugs/show_bug.cgi?id=258673
<?xml version="1.0" encoding="utf-8"?>
<!--
/*******************************************************************************
 * Copyright (c) 2008, 2009 IBM Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
 -->
<model xmlns="http://www.w3.org/2008/09/sml-if" schemaComplete="true">
  <identity>
    <name>InvalidConstraintGroup</name>
    <baseURI>
		http://interop.serviceml.org
	</baseURI>
    <description>
       Define sml:key constraints that are INconsistent for identically named elements in the same type.
       Spec citation: If two element declarations E1 and E2 have the same {namespace name} and {name}
       and they are both contained (directly, indirectly, or implicitly) in a content model of a
       complex type, then E1 and E2 MUST have the same set of {SML identity-constraints definitions}.
    </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:group name="abstractGroup">
            <xs:sequence>
              <xs:element name="University" minOccurs="1" maxOccurs="unbounded">
                <xs:annotation>
                   <xs:appinfo>
                     <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:sequence>
          </xs:group>

		  <xs:group name="concreteGroup">
            <xs:sequence>
               <xs:element name="University" minOccurs="1" maxOccurs="unbounded">
                 <xs:annotation>
                   <xs:appinfo>
                     <sml:key name="StudentNameisKey">
                       <sml:selector xpath="smlfn:deref(tns:EnrolledStudents/tns:EnrolledStudent)"/>
                       <sml:field xpath="tns:Name"/>
                     </sml:key>
                   </xs:appinfo>
                 </xs:annotation>
               </xs:element>
            </xs:sequence>
          </xs:group>

          <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:group ref="tns:abstractGroup"/>
              <xs:group ref="tns:concreteGroup"/>
            </xs:sequence>
          </xs:complexType>
        </xs:schema>
      </data>
    </document>
  </definitions>
</model>