[oXygen-user] XML Schema & XInclude ?

George Cristian Bina
Tue Jul 17 15:13:08 CDT 2007


Dear Timothy,

oXygen has an option "Enable XInclude processing" that I believe is 
enabled by default.
When that is enables the validation against XML Schema is performed 
after XInclude processing, that means the XML Schema should not care 
about defining the xi:include element but it should take into account 
that the included fragment will have an xml:base attribute pointing to 
the location it was included from and probably also an xml:lang. So for 
instance if you want to have scope elements inside scopes and you plan 
to include scope elements from other documents using XInclude then you 
should define xml:base (and xml:lang) to be allowed in the scope element.

When the XInclude processing is not enabled then oXygen will validate 
the document as it is against the specified XML Schema. In that case you 
need to refer to the xi:include element inside the schema, as in your 
sample. The problem in your case is the wrong namespace that you used in 
import, the correct nemespace is http://www.w3.org/2001/XInclude, that 
is not with 2003.

Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

Timothy Reaves wrote:
> On Tue, July 17, 2007 10:19, Timothy Reaves wrote:
>> I have an xml schema I've created.  I'd like to have several XML
>> documents that are combined into a larger one (I do this with DocBook &
>> chapters).  But I can't figure out how to do this with XMLSchema.
>>
>> Basically what I have is one xml document per environment (it's for
>> configuration information).  I'd like to have a parent document that has
>> elements from the schema that are generic to the overall base, then
>> includes the several smaller environment xml documents.  Any ideas?
>>
>> Thanks!
>>
> 
> 
> I believe I have this with
> 
> <xs:import
>   namespace="http://www.w3.org/2003/XInclude"
>   schemaLocation="xinclude.xsd"/>
> 
> in my xsd file, and then I have an element
> 
> <xs:element name="scopes">
>   <xs:complexType>
>     <xs:sequence>
>       <xs:element ref="xi:include" minOccurs="0"/>
>     </xs:sequence>
>   </xs:complexType>
> </xs:element>
> 
> but oXygen fails to validate this line
> 
> <xs:element ref="xi:include" minOccurs="0"/>
> 
> with the error
> 
> SystemID:
> D:\dev\workspace\JDISoarianInstallerJava\src\resources\deployment.xsd
> Location: 70:24
> Description: src-resolve.4.2: Error resolving component 'xi:include'. It
> was detected that 'xi:include' is in namespace
> 'http://www.w3.org/2001/XInclude', but components from this namespace are
> not referenceable from schema document
> 'file:/D:/dev/workspace/JDISoarianInstallerJava/src/resources/deployment.xsd'.
> If this is the incorrect namespace, perhaps the prefix of 'xi:include'
> needs to be changed. If this is the correct namespace, then an appropriate
> 'import' tag should be added to
> 'file:/D:/dev/workspace/JDISoarianInstallerJava/src/resources/deployment.xsd'.
> URL: http://www.w3.org/TR/xmlschema-1/#src-resolve
> 
> 
> 
> _______________________________________________
> oXygen-user mailing list
> 
> http://www.oxygenxml.com/mailman/listinfo/oxygen-user



More information about the oXygen-user mailing list