- From: Rahul Srivastava <Rahul.Srivastava@Sun.COM>
- Date: Sat, 3 Nov 2001 17:26:48 +0000 (Asia/Calcutta)
- To: xmlschema-dev@w3.org
1. In your XMLSchema your default namespace ("") is different from targetNamespace ("AnotherTestSpace"). So, the declaration: <xsd:complexType name="order"> ... </xsd:complexType> puts "order" in targetNamespace. But, when you refer it: <xsd:element name="shipOrder" type="order"/> it tries to find "order" in default namespace, as "order" is not prefixed, and is unable to find it. This problem is everywhere in your schema. [Define a default namespace equal to targetNamespace OR define a namespace equal to your targetNamespace and use that prefix when referring.] 2. You have not specified elementFormDefault attribute in your schema file. This means it defaults to "unqualified". Therefore in your instance file, you need to qualify *only* the global declarations. [Define a namespace equal to targetNamespace and qualify the global elements in your xml file OR set elementFormDefault to qualified and define a default namespace equal to targetNamespace in your instance file.] Hope this helps. Cheers, Rahul. Sun Microsystems, Inc. > From: Ravin Shah <Ravin.Shah@morganstanley.com> > > > I am trying to validate some XML files and have come across many > problems. Right now, I just want to get a sample program working that > validates. I would appreciate any kind of help. > > I just want to validate an XML file against an XSD file. I have taken a > very simple example but I get these results from the parser (The xml and > xsd files are shown below): > > Error :order.xml:3:121: Schema error: ComplexType 'order': Invalid child > 'element' in the complex type. > Error :order.xml:3:121: Schema error: ComplexType 'shipAddress': Invalid > child 'element' in the complex type. > Error :order.xml:3:121: Schema error: ComplexType 'cdItem': Invalid > child 'element' in the complex type. > Error :order.xml:3:121: Schema error: ComplexType 'cdItems': Invalid > child 'element' in the complex type. > Error :order.xml:3:121: Element type "shipOrder" must be declared. > Error :order.xml:4:11: Element type "shipTo" must be declared. > Error :order.xml:5:11: Element type "name" must be declared. > Error :order.xml:6:13: Element type "street" must be declared. > Error :order.xml:7:14: Element type "address" must be declared. > Error :order.xml:8:14: Element type "country" must be declared. > Error :order.xml:10:10: Element type "items" must be declared. > Error :order.xml:11:11: Element type "item" must be declared. > Error :order.xml:12:14: Element type "title" must be declared. > Error :order.xml:13:17: Element type "quantity" must be declared. > Error :order.xml:14:14: Element type "price" must be declared. > Error :order.xml:16:11: Element type "item" must be declared. > Error :order.xml:17:14: Element type "title" must be declared. > Error :order.xml:18:17: Element type "quantity" must be declared. > Error :order.xml:19:14: Element type "price" must be declared. > > Here is my xml file: > > <?xml version="1.0" encoding="UTF-8"?> > <shipOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="AnotherTestSpace order_schema.xsd"> > <shipTo> > <name>Tove Svendson</name> > <street>Ragnhildvei 2</street> > <address>4000 Stavanger</address> > <country>Norway</country> > </shipTo> > <items> > <item> > <title>Empire Burlesque</title> > <quantity>1</quantity> > <price>10.90</price> > </item> > <item> > <title>Hide your heart</title> > <quantity>1</quantity> > <price>9.90</price> > </item> > </items> > </shipOrder> > > Here is my xsd file: > > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > targetNamespace="AnotherTestSpace"> > <xsd:element name="shipOrder" type="order"/> > <xsd:complexType name="shipAddress"> > <xsd:element name="name" type="xsd:string"/> > <xsd:element name="street" type="xsd:string"/> > <xsd:element name="address" type="xsd:string"/> > <xsd:element name="country" type="xsd:string"/> > </xsd:complexType> > > <xsd:complexType name="cdItem"> > <xsd:element name="title" type="xsd:string"/> > <xsd:element name="quantity" type="xsd:positiveInteger"/> > <xsd:element name="price" type="xsd:decimal"/> > </xsd:complexType> > > <xsd:complexType name="cdItems"> > <xsd:element name="item" type="cdItem"/> > </xsd:complexType> > > <xsd:complexType name="order"> > <xsd:element name="shipTo" type="shipAddress"/> > <xsd:element name="items" type="cdItems"/> > </xsd:complexType> > </xsd:schema> > >
Received on Saturday, 3 November 2001 06:59:29 UTC