[Home] [By Thread] [By Date] [Recent Entries]

  • To: <xml-dev@l...>
  • Subject: RE: Help Needed to create an XSD
  • From: "Cyril" <cyrilw@t...>
  • Date: Tue, 4 Oct 2005 14:23:25 -0400
  • In-reply-to: <20051004180753.CE6AA65CA3@m...>
  • Thread-index: AcW643yOq1uWnXyoSgaFepVlU0ukcwABvc1gA4WMYiAAAxVIgAAApfEA

Thanks Michael and Anne T.

Just to consolidate my understanding about namespaces I think this is where
I was confused.

In my XML Data when there is no namespace prefix in the xml tag (for
<rptTransmit/>), doesn't it use the default namespace? I figured since my
default namespace has no definition of any element called rptTransmit, this
would be invalid. 

I saw from your example you use a reference eg ref="foo:rptTransmit" or
ref="i:rptTransmit" with the prefix , should this prefix appear in the XML
Data I am creating ie <foo:rptTransmit> instead of just <rptTransmit>? Or is
the latter valid? I'm having trouble understanding how the parser would know
that the <rptTransmit> is from the external XSD since it has no prefix for
the namespace.

Cyril

-----Original Message-----
From: Michael Kay [mailto:mike@s...] 
Sent: October 4, 2005 2:01 PM
To: 'Cyril'; xml-dev@l...
Subject: RE:  Help Needed to create an XSD 

 
> 
> 
> Now I need to create my own XSD that contains some info in 
> addition to the
> XML file I get from the 3rd party. It should look something like this
> 
> <myrpt>
> <id>0000</id>
> <status>pending</status>
> 
> <rptTransmit xmlns="http://www.foo.ca/XMLSchemas "
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.foo.ca/XMLSchemas
> http://www.foo.ca/XMLSchemas/UAT/Transmit.xsd">
> :
> </rptTransmit>
> </myrpt>
> 
> 
> 
> How will I create the XSD schema with the namespace of my 
> tags and taking
> into consideration of the 3rd party namespace? Can anyone 
> give me a sample
> XSD that will match what I 'd like to achieve
> 

Something like this:

<xs:schema>

<xs:import namespace="http://www.foo.ca/XMLSchemas"
        schemaLocation="http://www.foo.ca/XMLSchemas/UAT/Transmit.xsd"/>

<xs:element name="myrpt">
  <xs:sequence>
    <xs:element name="id"/>
    <xs:element name="status"/>
    <xs:element ref="i:rptTransmit" xmlns:i="http://www.foo.ca/XMLSchemas"/>
  </xs:sequence>
</xs:element>

</xs:schema>

That's just a sketch leaving out all the noise, but I hope you get the idea.

Michael Kay
http://www.saxonica.com/



-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member