[ 
https://issues.apache.org/jira/browse/DAFFODIL-2916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dave Thompson closed DAFFODIL-2916.
-----------------------------------

Verified the specified commit (commit 2590f54ce93e262d02660bd9d57bc7979a7d06d9) 
is included in the latest pull from the daffodil repository.

Verified, via review, changes identified in the commit comment were 
implemented. 

Verified the affected daffodil subproject sbt test suites executed 
successfully, including the added tests.

However, this commit caused the nitf schema to fail to compile during 
verifiction testing.

The ticket was reopened on 9-20-2024 by test.

Verified the specified commit (commit 
2590f54ce93e262d02660bd9d57bc7979a7d06d9), with the fix for the regression 
issue, is included in the latest pull from the daffodil repository.

Verified, via review, changes identified in the commit comment were 
implemented. 

Verified the affected daffodil subproject sbt test suites executed 
successfully, including the added tests.

Verified the nightly test suite executes successfully with no unexpected 
failures, including the nitf schema compilation and tests.

> xs:include of no-namespace schema does not chameleon the references properly
> ----------------------------------------------------------------------------
>
>                 Key: DAFFODIL-2916
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2916
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Front End
>    Affects Versions: 3.8.0
>            Reporter: Mike Beckerle
>            Assignee: Steve Lawrence
>            Priority: Major
>             Fix For: 3.9.0
>
>
> Discovered when doing experiments trying to combine smaller schemas together 
> into larger schemas.
> We want to take a no-namespace schema, such as jpeg.dfdl.xsd (from 
> DFDLSchemas), and include it into a schema that gives it a target namespace. 
> For example suppose we create jpeg-ns.dfdl.xsd which is supposed to have a 
> target namespace and it includes jpeg.dfdl.xsd.
> The symbols in jpeg.dfdl.xsd are supposed to take on the new namespace of the 
> file they are included into.
> And here is what isn't working: references within jpeg.dfdl.xsd to global 
> elements/types/groups within that schema (which means they are referencing 
> global elements with no namespace) are supposed to end up referencing those 
> same elmeents, but in the new namespace into which the schema was included.
> This doesn't happen. You get SDEs about there being no definition for 
> "{}empty", that is, the reference is to empty is also supposed to "chameleon" 
> to be a reference to the new global element in the new chameleon namespace. 
> Per: Definitive XML Schema, Walmsley, ISBN: 0-13-065567-8.  Chapter 4 (Schema 
> Composition) Section 4.4.1 (Include) Example 4-4, pages 67-68. 
> In detail, suppose you create jpeg-ns.dfdl.xsd like this:
> {code:java}
> <xs:schema targetNamespace="urn:jpeg" ...>
>   <xs:include schemaLocation="jpeg.dfdl.xsd"/>
> </xs:schema>{code}
> That should be all that is required to define a namespace-qualified version 
> of jpeg. 
> Now you define a combined schema which combines jpeg and other schemas 
> together like this:
> {code:java}
> <xs:schema targetNamespace="urn:combined" xmlns:jpeg="urn:jpeg"...>
>   <xs:import namespace="urn:jpeg" schemaLocation="jpeg-ns.dfdl.xsd"/>
>   ...
>   <xs:complexType name="combo">
>      <xs:choice>
>         <xs:element ref="jpeg:JFIF"/>
>         ...
>      </xs:choice>
>   </xs:complexType>
> </xs:schema>{code}
> That *should* work. It doesn't. There's a global type defined and referenced 
> in jpeg.dfdl.xsd named "empty". 
> The SDE one gets is that "{}empty" is not found. 
> But the xs:include should be converting that reference from one referring to 
> the original no-namespace declaration to a reference to the new chameleon 
> namespaced insteance of that type. 
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to