views:

27

answers:

2

Hello,

I have the following start of an XSD:

<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
     xmlns:no="http://www.sychophants.com"&gt;
<xs:import namespace="http://www.sychophants.com" schemaLocation="current_obs.xsd"/>

...and then some other definitions...

<xs:element name="noInDatPletd" ref="no:in_dat"/>

Where in_dat exists in a schema written by another organization. What I essentially want to do us create a schema that will contain an element of the in_dat type that is defined in the other ogranization's XSD.

Am I even close to having this correct? I'm pretty new to XML.

I keep getting

    http://location_of_my_xsd/temp.xsd:79:9: Invalid: Undefined element 
    no{http://www.sychophants.com}:in_dat referenced from content model 

from http://www.w3.org/2001/03/webdata/xsv, which is a schema validator.

Thanks.

edit: Thanks to the two of you who replied. The problem appears to be that the other organization did not define a targetNamespace attribute in their schema. The result is that I cannot import the namespace into my schema, which means I cannot use the type provided.

I had to copy/paste the code, which is what I wanted to avoid... but you can't have everything you want, I guess.

+1  A: 

I see only one obvious error: you use ref="no:in_dat" for referencing a type. You should use type="no:in_dat" there. ref would reference a global element (and should not be used together with the name attribute).

Apart from that, have you passed the external schema to the validator beside your own schema? It is of course needed to validate with your schema.

Enton
I made the change with no effect in the validation results. The validator that comes with my editor (XML Copy Editor for linux) says that the schema is valid, but I'm thinking it might just be checking to make sure it is well-formed.
San Jacinto
+1  A: 

Besides changing ref= to type=, your schema definition looks correct. From the error message, I'm guessing that the schema validator is not able to load the current_obs.xsd from the schemaLocation provided, which would make sense. The validator would have no way of verifying whether there is a type called in_dat since it could not import the schema.

Garett