W3C home > Mailing lists > Public > xmlschema-dev@w3.org > November 2004

'Re: "RE: Including schemata with duplicate referents"'

From: Kasimier Buchcik <kbuchcik@4commerce.de>
Date: Fri, 05 Nov 2004 15:11:15 +0100
To: Michael Kay <mike@saxonica.com>
CC: <xmlschema-dev@w3.org>
Message-ID: <418B8A03.8000003@4commerce.de>


Michael Kay wrote:
>>I have difficulties understanding what to do with included components
>>at sub-schema constrution stage - acting as referents - which 
>>cannot be included into the final schema.
> You're not alone: I've been finding the spec is a quagmire in this area.
>>A simplified example:
>>- A, B1, B2 and C are schemata
>>- B1 includes C and references components of C (referred to as B1.C)
>>- B2 includes C and references components of C (referred to as B2.C)
>>- A includes B1 and B2
>>Since the B1.C components are already included in A, the B2.C 
>>won't be added to A. The spec states properties of components to have 
>>components as their values; the values of components of B2 
>>B2.C would become unavailable, since not added to A.
> You seem to be assuming B1 and B2 contain copies of the components in C. If
> the components retain their identity, I don't think it's a problem: if a
> component in B2 includes a reference to a component in C, that reference
> will be satisfied, because the component will exist in A, whether it reached
> A via B1 or B2. (It gets more complicated, of course, with chameleon
> includes).

Just to make this more visual for me:

- B1 has it's original components, call them B1.orig
- B1 has copies of components of C, call them B1.C components
- B1.orig components have properties with B1.C components as values

- B2 has it's original components, call them B2.orig
- B2 has the copies of components of C, call them B2.C components
- B2.orig components have properties with B2.C components as values

- A has it's own components plus the copies of the following components:
   - B1.orig, call them B1.orig.A
   - B1.C,    call them B1.C.A
   - B2.orig, call them B2.orig.A

Do B1.orig.A comps. have still props. with B1.C components as values
    B2.orig.A comps. have still props. with B2.C components as values,
which are not included into A but exist _somewhere_?

If this is how it works, I see a hell of memory usage. Or are the
assigned property values somehow remapped to the components copied
into A, releasing the original components from the sub-stages?

> The difficulty I have been finding is that inclusion at the level of schema
> components simply doesn't work. Until all the references from a schema
> component to other components have been resolved, you need to keep a lot of
> "raw XML" information such as the lexical form of enumeration values and
> their namespace context.

Thanks & regards,

Received on Friday, 5 November 2004 14:12:01 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:56:06 UTC