- From: Pete Cordell <petexmldev@codalogic.com>
- Date: Tue, 12 Jul 2011 11:50:36 +0100
- To: "Avinash Nagabhushan" <avinash.sit@gmail.com>, <David.Hirtle@nrc-cnrc.gc.ca>, <xmlschema-dev@w3.org>
Hi Avinash,
To do this you will need to break "Department" out into its own top-level
element (or top-level complexType). For example:
<xs:element name="Organization">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:Department" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Department">
<xs:complexType>
<xs:sequence>
<xs:element name="Name"/>
<xs:element name="TotalEmp"/>
<xs:element ref="ns1:Department" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="num" type="xs:string"/>
</xs:complexType>
</xs:element>
HTH,
Pete Cordell
Codalogic Ltd
Interface XML to C++ the easy way using C++ XML
data binding to convert XSD schemas to C++ classes.
Visit http://codalogic.com/lmx/ or http://www.xml2cpp.com
for more info
----- Original Message -----
From: "Avinash Nagabhushan" <avinash.sit@gmail.com>
To: <David.Hirtle@nrc-cnrc.gc.ca>; <xmlschema-dev@w3.org>
Sent: Tuesday, July 12, 2011 7:20 AM
Subject: Self reference in an element
Hi Sir,
I am writing an schema for the following structure:
Organization
dept +
@num
name
total_emp
dept +
where dept elements are nested within another dept element, but all
departments are under organization.
My Schema is:
<xs:schema xmlns:ns1="VIPRE Anti-phishing found a known bad URL in your
email message. It was deleted or quarantined, depending on your settings,
and replaced with this message. The anti-phishing setting is located in
File>Settings under the Email Protection tab."
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="VIPRE Anti-phishing found a known bad URL in your email
message. It was deleted or quarantined, depending on your settings, and
replaced with this message. The anti-phishing setting is located in
File>Settings under the Email Protection tab.">
<xs:element name="Organization">
<xs:complexType>
<xs:sequence>
<xs:element name="Department" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name"/>
<xs:element name="TotalEmp"/>
<xs:element ref="ns1:Department" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="num" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
There is a validation error saying "ns1:Department" is not a QName and
cannot find declaration for the same. Is there something wrong in my
definition?
Can you please let me know whether it is a correct approach or wrong?
Thanks,
Avinash K N
Received on Tuesday, 12 July 2011 10:51:08 UTC