How abstract components are created when reading a schema – an animation in 6 slides
-- complexType with wildcard

July 26, 2002 5:00pm

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

Parse of a complexType definition and construction of the abstract schema components.

<xs:complexType name="ct01">

<xs:choice>

<xs:element name="inline" type="xs:string" minOccurs="2" maxOccurs="3"/>

<xs:any namespace="##other"/>

</xs:choice>

</xs:complexType>

Now let’s follow how the abstract schema components

are built, by getting “blank” objects from XSDFactory,

We’ll follow this example:

setting their properties,

and linking them to each other…

Parse of <xs:complexType name=“ct01”>

XSDComplexTypeDefinition

name:

targetNamespace:

baseType:

XSDFactory

ct01

content:

Note on notation:

Method names used to connect components will appear on the

next slide

createXSDComplexTypeDefinition()

Parse of <xs:choice>

XSDComplexTypeDefinition

name:

targetNamespace:

baseType:

XSDFactory

ct01

XSDParticle

term:

minOccurs:

maxOccurs:

content:

XSDModelGroup

compositor:

particles: list

XSDCompositor

compositor: XSDCompositor.CHOICE

Note on notation:

all 3 kinds of arrows mean the same thing, which is a reference.

A diamond at the source of an arrow indicates containment.

Remaining slides do not show Factory method calls

setTerm()

setCompositor()

setContent( )

createXSDParticle()

createXSDModelGroup()

Parse of <xs:element name=“inline” type="xs:string" minOccurs="2" maxOccurs="3"/>

XSDComplexTypeDefinition

name:

targetNamespace:

baseType:

XSDFactory

ct01

XSDParticle

term:

minOccurs:

maxOccurs:

content:

XSDModelGroup

compositor:

particles: list

XSDCompositor

compositor: XSDCompositor.CHOICE

XSDParticle

term:

minOccurs:

maxOccurs:

XSDElementDeclaration

name:

targetNamespace:

typeDefinition:

isSetAnonymousTypeDefinition: false

2

3

inline

getParticles().add()

setContent()

setTypeDefinition()

Parse of <xs:any namespace=“##other”/>

XSDComplexTypeDefinition

name:

targetNamespace:

baseType:

XSDFactory

ct01

XSDParticle

term:

minOccurs:

maxOccurs:

content:

XSDModelGroup

compositor:

particles: list

XSDCompositor

compositor: XSDCompositorCHOICE

XSDParticle

term:

minOccurs: 2

maxOccurs: 3

XSDElementDeclaration

name: inline targetNamespace:

isSetAnonymousTypeDefinition: false typeDefinition:

XSDParticle

term:

minOccurs:

maxOccurs:

XSDWildcard

namespaceConstraint: XSDNamespaceConstraintCategory.NOT

namespaceConstraintList:targetNamespace-of-this-schema

getParticles().add()

setContent()

Parse of </xs:complexType>

XSDComplexTypeDefinition

name:

targetNamespace:

baseType:

ct01

XSDParticle

term:

minOccurs:

maxOccurs:

content:

XSDModelGroup

compositor:

particles: list

XSDCompositor

compositor: XSDCompositor.CHOICE

XSDParticle

term:

minOccurs: 2

maxOccurs: 3

XSDElementDeclaration

Ma,e: inline targetNamespace:

isSetAnonymousTypeDefinition: false typeDefinition:

XSDParticle

term:

minOccurs:

maxOccurs:

XSDWildcard

namespaceConstraint: XSDNamespaceConstraintCategory.NOT

namespaceConstraintList: targetNamespace-of-this-schema

XSDSchema

contents: list

now including ct01

getContents( ).add()

Project Status

Robert Schloss

2002-04-23T16:54:51