[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Schemas and namespaces
"Fabrice DESRE - FT.BD/FTRD/DMI/GRI" <fabrice.desre@f...> writes: > Hello, > > I need some clarification about the use of > namespaces in schemas. > Consider the following situation : my first > schema is a type library; it looks like : > > <?xml version="1.0" encoding="ISO-8859-1"?> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://foobar.com/UTIL/" > elementFormDefault="qualified" > attributeFormDefault="unqualified"> > <xsd:complexType name="choice.Type"> > <xsd:simpleContent> > <xsd:restriction base="xsd:string"> > <xsd:attribute name="name" type="xsd:string" use="required"/> > </xsd:restriction> > </xsd:simpleContent> > </xsd:complexType> > </xsd:schema> > > Now I whant to use this type in another schema : > > <?xml version="1.0" encoding="ISO-8859-1"?> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://foobar.com/APP/" > elementFormDefault="qualified" > attributeFormDefault="unqualified" > xmlns:util="http://foobar.com/UTIL/"> > <xsd:import namespace="http://foobar.com/UTIL/" > schemaLocation="util.xsd"/> > <xsd:element name="root"> > <xsd:complexType> > <xsd:sequence> > <xsd:element name="info" type="xsd:string"/> > <xsd:element name="choice" type="util:choice.Type"/> > <xsd:sequence> > </xsd:complexType> > </xsd:element> > </xsd:schema> > > What is the correct instance document ? > > This one : > > <?xml version="1.0" ?> > <app:root xmlns:app="http://foobar.com/APP/" > xmlns:util="http://foobar.com/UTIL/"> > <app:info>Info element</app:info> > <app:choice name="foo"/> > </root> That one. > Or this one : > > <?xml version="1.0" ?> > <app:root xmlns:app="http://foobar.com/APP/" > xmlns:util="http://foobar.com/UTIL/"> > <app:info>Info element</app:info> > <util:choice name="foo"/> > </root> > > What i need is to write a schema that allows the second instance > to be valid, but I didn't find a clear answer on this subject in > the spec. If you want the element in the util namespace, declare it there and reference it from the content model of app:root, as follows: <?xml version="1.0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foobar.com/UTIL/" xmlns:u="http://foobar.com/UTIL/" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:complexType name="choice.Type"> <xsd:simpleContent> <xsd:restriction base="xsd:string"> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:restriction> </xsd:simpleContent> </xsd:complexType> <xsd:element name="choice" type="u:choice.Type"/> </xsd:schema> <?xml version="1.0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foobar.com/APP/" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:util="http://foobar.com/UTIL/"> <xsd:import namespace="http://foobar.com/UTIL/" schemaLocation="util.xsd"/> <xsd:element name="root"> <xsd:complexType> <xsd:sequence> <xsd:element name="info" type="xsd:string"/> <xsd:element ref="util:choice"/> <xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> ht -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh W3C Fellow 1999--2001, part-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@c... URL: http://www.ltg.ed.ac.uk/~ht/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|