OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] Access to elements from schema imported once removed !

[ Lists Home | Date Index | Thread Index ]

Title: [xml-dev] Access to elements from schema imported once removed !
From a quick glance, in your "imported schema", element "globalElement is not in the "urn:foo" namespace because it does not have a namespace prefix, and you have not specified a default namespace for that schema. If you add a default namespace declaration to the imported schema that makes the "urn:foo" namespace your default namespace, it should work.

Joe Chiusano


From: Fraser Goffin [mailto:goffinf@hotmail.com]
Sent: Mon 9/5/2005 10:03 AM
To: xml-dev@lists.xml.org
Subject: [xml-dev] Access to elements from schema imported once removed !

I have a main transcation schema which INCLUDEs a schema containing a number
of type definitions. That schema IMPORTs another schema which contains some
global element declarations which are used to extend one of the types in the
import'ing schema.

Transaction schema
  --> includes base types
       --> imports global elements

When an XML instance based on the transaction schema is created that
contains a reference to one of the global elements of the imported schema,
XML Spy outputs the message :-

'Could not validate element <<globalElement>>. No type definition was found'

If I view the transaction schema, the imported types and elements are
clearly visible. Can anyone tell me why the XML is invalid ??

I have attached a simplified example below :-

XML Instance Doc
===========

<?xml version="1.0" encoding="UTF-8"?>
<tns:includedRoot xmlns:tns="urn:bar"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:bar includingSchema.xsd" xmlns:imp="urn:foo">
  <fromImported>
    <root>blah</root>
    <imp:globalElement>blah</imp:globalElement>
  </fromImported>
</tns:includedRoot>

transaction schema
============

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:bar"
  targetNamespace="urn:bar"
  elementFormDefault="unqualified" attributeFormDefault="unqualified">
  <xs:include schemaLocation="importingSchema.xsd"/>
    <xs:element name="includedRoot">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="fromImported" type="Extended"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
</xs:schema>


importing schema
===========

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified"
   attributeFormDefault="unqualified" xmlns:imp="urn:foo">
  <xs:import namespace="urn:foo" schemaLocation="importedSchema.xsd"/>
  <xs:complexType name="myBaseType">
    <xs:sequence>
      <xs:element name="root" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Extended">
    <xs:complexContent>
      <xs:extension base="myBaseType">
         <xs:sequence>
           <xs:element ref="imp:globalElement" minOccurs="0"/>
         </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>

imported schema
==========

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
  attributeFormDefault="qualified" targetNamespace="urn:foo"
xmlns="urn:foo">
  <xs:element name="globalElement" type="xs:string"/>
</xs:schema>



-----------------------------------------------------------------
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>





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS