XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
XSD: Problems with restrictions and substitution groups

I am extending an exisitng schema for a medical messaging paradigm, to
define a more contrained version of the schema for a specific type of
message.

The oringal schema contains the following elemnt OBX:



And I have created several substitutions for an element called OBX,
these substitutions are restrictions of the OBX element and work fine:

<xsd:complexType name="OBX.PD.NeedHelpToCommunicate.CONTENT">
		<xsd:complexContent>
			<xsd:restriction base="OBX.CONTENT">
				<xsd:sequence>
					<xsd:element ref="OBX.1"
minOccurs="0"/>
					<xsd:element
ref="OBX.2.PD.NeedHelpToCommunicate"/>
					<xsd:element
ref="OBX.3.PD.NeedHelpToCommunicate"/>
					<xsd:element ref="OBX.5"
maxOccurs="unbounded"/>
					<xsd:element ref="OBX.11"/>
				</xsd:sequence>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
<xsd:element name="OBX.PD.NeedHelpToCommunicate"
type="OBX.PD.NeedHelpToCommunicate.CONTENT" substitutionGroup="OBX"/>

<xsd:complexType name="OBX.PD.LanguageSpokenAtHome.CONTENT">
		<xsd:complexContent>
			<xsd:restriction base="OBX.CONTENT">
				<xsd:sequence>
					<xsd:element ref="OBX.1"
minOccurs="0"/>
					<xsd:element
ref="OBX.2.PD.LanguageSpokenAtHome"/>
					<xsd:element
ref="OBX.3.PD.LanguageSpokenAtHome"/>
					<xsd:element ref="OBX.5"
maxOccurs="unbounded"/>
					<xsd:element ref="OBX.11"/>
				</xsd:sequence>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
<xsd:element name="OBX.PD.LanguageSpokenAtHome"
type="OBX.PD.LanguageSpokenAtHome.CONTENT" substitutionGroup="OBX"/>

I now want to restrict the CLINICAL_OBSERVATION element:

  <xsd:complexType name="REF_I12.CLINICAL_OBSERVATION.CONTENT">
    <xsd:sequence>
      <xsd:element ref="OBR" minOccurs="1" maxOccurs="1" />
      <xsd:element ref="OBX" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="REF_I12.CLINICAL_OBSERVATION"
type="REF_I12.CLINICAL_OBSERVATION.CONTENT"/>

To be like this:

  <xsd:complexType name="REF_I12.CLINICAL_OBSERVATION.EONI.CONTENT">
    <xsd:complexContent>
      <xsd:restriction base="REF_I12.CLINICAL_OBSERVATION.CONTENT">
        <xsd:sequence>
            <xsd:element ref="OBR" minOccurs="1" maxOccurs="1" />
            <xsd:element ref="OBX.PD.NeedHelpToCommunicate" minOccurs =
"0"/>
            <xsd:element ref="OBX.PD.LanguageSpokenAtHome" minOccurs =
"0"/>
          </xsd:sequence>
        </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="REF_I12.CLINICAL_OBSERVATION.EONIi"
type="REF_I12.CLINICAL_OBSERVATION.EONI.CONTENT"
substitutionGroup="REF_I12.CLINICAL_OBSERVATION"/>

Certainly on the surface that seems to be a valid restricition of:

<xsd:sequence>
      <xsd:element ref="OBR" minOccurs="1" maxOccurs="1" />
      <xsd:element ref="OBX" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>

However I get the rcase-Recurse.2 error "There is not a complete
functional mapping beyween the particles". I believe it has something to
do with the way the substitutiongroups of OBX are expanded to a choice
group, and then validated against my restriction, but I have tried all
kinds of ways of wrapping the sequence in choice and sequence tags to no
avail.

Any help would be much appreciated ... even a link to some software
that can show the expansions or give me a more detailed error message
would be very useful.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


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

Copyright 1993-2007 XML.org. This site is hosted by OASIS