- From: Wilde Rebecca L SSgt HQ SSG/SWO <Rebecca.Wilde@Gunter.AF.mil>
- Date: Mon, 28 Mar 2005 18:06:21 -0600
- To: <xmlschema-dev@w3.org>
- Message-ID: <0E7391319A8BE84EB2DC1E283C6A381ED6ED60@fsjubj12.exchange.gunter.af.mil>
Hello,
I've been trying to figure out if I have done something incorrectly or if the program I am using the validate (XML Spy 2005) has implemented something between their 2005 sp1 and sp2 editions to read my schema wrong.
Is there a better way to accomplish what I am trying to do.. or at least what I thought I had done.
I apologize in advance for the length.
In essence, I have my schema split into numerous files and use the include to combine them into one big schema. Other information that might be relevant is that I use the chameleon namespacing so that I only declare a namespace on my "main" (in the example below that would be within the Bowl.xsd).
I created my root element (Bowl) and made it so that it contains an abstract element (Content).
I wanted to create my abstract element (Content) to be able to contain an unlimited amount of any elements defined within my entire schema (to include all the included files). I also want to allow anyAttributes to be allowed on my abstract element.
Then I want to be able to create different forms of that abstract element (Content) such as in my example element (AlphabetSoup)
I would like the following to be able to validate against my schema. But at the same time, I want to be able to reuse my "Bowl" for a different "Content" in another instance.
<Bowl>
<AlphabetSoup>
<A/>
<D/>
</AlphabetSoup>
</Bowl>
But first...... I have to figure out why my validator is telling me that my AlphabetSoupType is not a valid restriction of the content model of complex type "ContentType"
Thank you very much for any help!
Becky
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="Lunch.Time" xmlns="Lunch.Time">
<!-- Bowl.xsd -->
<xs:element name="Bowl" type="BowlType"/>
<xs:complexType name="BowlType">
<xs:sequence>
<xs:element ref="Content"/>
</xs:sequence>
</xs:complexType>
<!-- General.xsd -->
<xs:element name="Content" type="ContentType" abstract="true"/>
<xs:complexType name="ContentType">
<xs:sequence>
<xs:any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##local"/>
</xs:complexType>
<!-- Soup.xsd -->
<xs:element name="AlphabetSoup" type="AlphabetSoupType" substitutionGroup="Content"/>
<xs:complexType name="AlphabetSoupType">
<xs:complexContent>
<xs:restriction base="ContentType">
<xs:sequence>
<xs:group ref="AOrBGroup"/>
<xs:element ref="C" minOccurs="0"/>
<xs:element ref="D"/>
</xs:sequence>
<xs:attributeGroup ref="SizeAttributeGroup"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:group name="AOrBGroup">
<xs:choice>
<xs:element ref="A"/>
<xs:element ref="B"/>
</xs:choice>
</xs:group>
<!-- UsableLetters.xsd -->
<xs:element name="A" type="AType"/>
<xs:simpleType name="AType">
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="B" type="BType"/>
<xs:complexType name="BType">
<xs:simpleContent>
<xs:extension base="AType">
<xs:attribute name="BAttribute" type="AType" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="C" type="ABType"/>
<xs:complexType name="ABType">
<xs:sequence>
<xs:element ref="A"/>
<xs:element ref="B"/>
</xs:sequence>
</xs:complexType>
<xs:element name="D" type="AType"/>
<xs:attributeGroup name="SizeAttributeGroup">
<xs:attribute name="size" type="SizeType" use="optional"/>
</xs:attributeGroup>
<xs:simpleType name="SizeType">
<xs:restriction base="xs:string">
<xs:enumeration value="S"/>
<xs:enumeration value="M"/>
<xs:enumeration value="L"/>
<xs:enumeration value="X"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Received on Tuesday, 29 March 2005 03:00:16 UTC