How abstract components are returned when schema.getElementDeclarations() is called – an animation in 3 slides
-- schemas that use <include> and <import>

July 26, 2002 5:00pm EDT

This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during your presentation

In Slide Show, click on the right mouse button

Select “Meeting Minder”

Select the “Action Items” tab

Type in action items as they come up

Click OK to dismiss this box

This will automatically create an Action Item slide at the end of your presentation with your points entered.

org.eclipse.xsd

XML Schema Infoset Model

If viewing in OpenOffice, hit F9 to begin.

If viewing in a browser, animations will only show final states.

© 2002 by IBM Corporation

These schema documents are equivalent to the

<xs:schema targetNamespace=“t1“ xmlns:xs=“http://www.w3.org/2001/XMLSchema”>

<xs:include schemaLocation=“s3.xsd”/>

<xs:import namespace=“t2” schemaLocation=“s2.xsd”/>

<xs:element name=“t1e1” type=“xs:string”/>

</xs:schema>

s2.xsd:

<xs:schema targetNamespace=“t2” xmlns:xs=“http://www.w3.org/2001/XMLSchema”>

<xs:element name=“t2e1” type=“xs:string”/>

</xs:schema>

s3.xsd:

<xs:schema targetNamespace=“t1” xmlns:xs=“http://www.w3.org/2001/XMLSchema”>

<xs:element name=“t1e2” type=“xs:string”/>

</xs:schema>

Now let’s follow how the abstract schema components

are fetched, in response to schema.getElementDeclarations(),

components in memory:

and returned as an EList…

The calling method has -- in a variable -- a pointer to the first XSDSchema shown on the left

It uses this to get a collection of all the Element Declarations that are part of that schema

Calling method

XSDSchema

targetNamespace:

incorporatedVersions: list

content:

s1.getElementDeclarations()

Calling method

XSDElementDeclaration

name:

targetNamespace:

typeDefinition:

isSetAnonymousTypeDefinition: false

t1e2

t1

XSDSchema

targetNamespace:

incorporatedVersions: list

t2

content:

XSDElementDeclaration

name:

targetNamespace:

typeDefinition:

isSetAnonymousTypeDefinition: false

t2e1

t2

XSDElementDeclaration

name:

targetNamespace:

typeDefinition:

isSetAnonymousTypeDefinition: false

t1e1

t1

XSDSchema

targetNamespace:

incorporatedVersions: list

t1

content:

XSDSchema

targetNamespace:

incorporatedVersions: list

content:

t1

s1.getElementDeclarations()

EList

content:

see org.eclipse.emf.ref.EList

Project Status

Robert Schloss

2002-04-23T16:54:51