Differences between revisions 31 and 32
Revision 31 as of 2006-06-22 09:48:12
Size: 15534
Editor: SimonLaws
Comment:
Revision 32 as of 2009-09-20 22:47:49
Size: 15538
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 150: Line 150:
attachment:interop1v0.1.xsd [[attachment:interop1v0.1.xsd]]
Line 240: Line 240:
[[AttachInfo]] <<AttachInfo>>

Tuscany Interop Testing

SDO

Scenarios

  • Write XML instance from one SDO implementation and read XML instance into another (schema is always available on file system) - inter-process messaging, moving data between tiers
  • Move an entire SDO from one implementation to another - session persistance, generic messaging, data integration
  • Exchange change summary between implementations - third party data editing

IO Features (from interop p.o.v)

Feature

Java

C++

PHP

XML (DAS)

Y

Y

Y

RDB DAS

Y

N

Y

Serialize to session

Via java serialize?

N

via serialize()

Serialize to WS

Y (1)

Y (1)

N

(1) - SDO->XMLHelper->String->Axiom

Test Summery

#

Test

Java

C++

PHP

Who

Note

1

XML->SDO-XML

Y

Y

Y

SL

Interop via file system write and read

2

XML->SDO->AddData->XML - Dynamic

Y

Y

Y

SL

Java change summary reimplementation about to start

3

XML->SDO->AddData->XML - Generated

Y

Not Supported

Y (By Name/By Index)

TBD

PHP support is already used in test 2

4

XSD->SDO-XSD

Not Supported

Y

Only supported via serialize

SL

Interop via file system write and read

5

RDB->SDO->AddData->RDB - Dynamic

Y

Not Supported

Y

SL

Interop via database write and read

6

RDB->SDO->AddData->RDB - Generated

Y

Not Supported

Y

SL

PHP generation support is already used in test 6

7

XML->SDO->Axiom->SOAP->Axiom->SDO->XML

Y

Y

Not Supported

AB

8

XML->SDO->Session->SDO->XML

Via java serializable?

N

Stores SDO state in PHP session

SL

Instance, model and change summary all together (XML?). Level of support in Java/C++ to be determined. Is this different from XMLHelper/DAS function?

Test 1 - Reading and writing XML files in Java/C++/PHP and comparing output

Schema Feature

Spec version 2.0.1 features.

Feature

Schema

Java M1

C++ SVN

PHP R1.0.1

Note

xsd <include>

interop1.xsd

Y

Y

Y

xsd <import>

interop2.xsd

Y

Y

fails on import of datagraph.xsd

not tracked down why it PHP fails yet

With target namespace

interop3.xsd

Y

Y

Y

Without target namespace

interop4.xsd

Feature <element name> not found

?

Y

Also implies noNamspaceSchemaLocation

With sdoJava:package

interop5.xsd

?

?

Should ignore but crashes on import

Global Element of simple type

interop6.xsd

Y

(JIRA488) Output doesn't match input

(PECL7963)Output doesn't match input

Simple types at top level cause SDO problems

Global Element of complex type

interop7.xsd

Y

Y

Y

Element of simple type

interop10

Y

Y

Y

Tested with interop10

Element of complex type

interop19

Y

Y

Y

Tested with interop19

Annotation

interop8.xsd

Y

Y

Y

Notation

interop9.xsd

Y

Y

Y

SimpleTypeWithName

interop10.xsd

Y

Y

Y

SimpleTypeAnonymous

interop11.xsd

Y

Y

Y

Element Ref

interop11.xsd

Y

Y

Y

SimpleTypeWithSDOName

interop12.xsd

Y

Y

Y

SimpleTypeWithAbstract

interop13.xsd

What verison of XML schema is this valid in?

SimpleTypeWithInstanceClass

interop14.xsd

Y

N/A not in spec

N/A not in spec

Spec doesn't indicate that restriction | list | union required

SimpleTypeWithExtendedInstanceClass

interop15.xsd

Y

N/A not in spec

N/A not in spec

SimpleTypeWithList

interop16.xsd

Not Implemented

SimpleTypeWithUnion

interop17.xsd

Not Implemented

Not Implemented

ComplexTypeNoContent

interop18.xsd

Y

Y

Y

ComplexTypeContent

interop19.xsd

Y

Y

Y

ComplexTypeAnonymous

interop20.xsd

Y

Y

Y

ComplexTypeWithSDOName

interop21.xsd

Y

Y

Y

ComplexTypeWithAbstract

interop22.xsd

Y

Y

???

ComplexTypeWithSDOAliasName

interop23.xsd

Y

Y

Y

ComplexTypeExtendingComplexType

interop24.xsd

Y

Y

Y

ComplexTypeExtendingSimpeType

interop25.xsd

Y

(JIRA444)SDOIllegalArgumentException Cannot add a properties to data types: ComplexTypeExtendingSimpleTypeTypeException

Exception in PHP Interop testAdd property to data type:http://www.apache.org/tuscany/interop ComplexTypeExtendingSimpleTypeType

ComplexTypeComplexContentRestrictingComplexType

interop26.xsd

Y

Y

Y

ComplexTypeSimpleContentRestrictingComplexType

interop27.xsd

Y

Y

Y

ComplexTypeWithMixed

interop28.xsd

TBD

Y

Y

ComplexTypeWithSDOSequence

interop29.xsd

Y

Y

Y

ComplexTypeOpenContent

interop30.xsd

Y

(JIRA445)The element type on output is incorrect

The open content is missing leaving a empty element

ComplexTypeOpenAttributes

interop31.xsd

TBD

Y

Y

ComplexTypeOppositeProperty

interop32.xsd

Y

Looses attribute

Looses attribute

not in spec, added for testing

Attribute

interop33.xsd

Y

Y

Y

AttributeWithSDOName

interop33.xsd

Y

Y

Y

AttributeWithSDOAliasName

interop33.xsd

Y

Y

Y

AttributeWithDefaultValue

interop33.xsd

Y

Y

Y

AttributeWithFixedValue

interop33.xsd

Y

Y

Y

AttributeReference

interop33.xsd

Y

Y

Y

Global Attribute

interop33.xsd

Y

Y

Y

AttributeWithSDOString

interop33.xsd

Y

Y

Y

AttributeWithSDOPropertyType

interop33.xsd

Y

(JIRA447)Missing from output

Missing from output

AttributeWithSDOPropertySDOOppositePropertyType

interop33.xsd

Y

(JIRA447)missing from output

Missing from output

AttributeWithSDODataType

interop33.xsd

Y

Y

Y

ElementWithSDOName

interop34.xsd

Y

(JIRA448)Error on write

Error on write

ElementWithSDOAliasName

interop35.xsd

Y

Y

Y

ElementWithMaxOccurs

interop36.xsd

Y

Y

Y

Element in sequence

interop10.xsd

Y

Y

Y

tested with interop10

ElementInChoice

interop37.xsd

Y

Y

Y

ElementInAll

interop38.xsd

Y

Y

Y

ElementWithNillable

interop39.xsd

Y

Y

Y

ElementSubstitutionGroupBase

interop40.xsd

Y

(JIRA449)Missing from output

Type not found

ElementOfSimpleTypeWithDefault

interop41.xsd

Y

Y

Y

ElementOfSimpleTypeWithFixed

interop42.xsd

Y

Y

Y

ElementOfSimpleTypeWithSDOString

interop43.xsd

Y

Y

Y

ElementOfSimpleTypeWithSDOPropertyType

interop44.xsd

Y

(JIRA450)missing from output

missing from output

Not sure I understand property types properly

ElementOfSimpleTypeWithSDOOppositePropertyType

interop45.xsd

Y

(JIRA450)missing from output

missing from output

Not sure I understand property types properly

ElementOfSimpleTypeWithSDODataType

interop46.xsd

Y

Y

Y

ElementOfSDOChangeSummaryType

interop47.xsd

Y

Y

Crash with <include> in the document

anySimpleType

interop50.xsd

Y

Y

Y

anyType

interop50.xsd

Y

(JIRA451)qualifier added and element value missing

qualifier added and element value missing

anyURI

interop50.xsd

Y

Y

Y

base64Binary

interop50.xsd

Y

Y

Y

boolean

interop50.xsd

Y

Y

Y

true, false, 1, 0

byte

interop50.xsd

Y

Y

Y

-128, ...-1, 0, 1, ... 127

date

interop50.xsd

Y

Y

Y

1999-05-31

dateTime

interop50.xsd

Y

Y

Y

1999-05-31T13:20:00.000-05:00 May 31st 1999 at 1.20pm Eastern Standard Time which is 5 hours behind Co-Ordinated Universal Time,

decimal

interop50.xsd

Y

Y

Y

-1.23, 0, 123.4, 1000.00

double

interop50.xsd

Y

Y

Y

-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN

duration

interop50.xsd

Y

Y

Y

P1Y2M3DT10H30M12.3S 1 year, 2 months, 3 days, 10 hours, 30 minutes, and 12.3 seconds

float

interop50.xsd

Y

Y

Y

-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN

gDay

interop50.xsd

Y

Y

Y

---31 the 31st day

gMonth

interop50.xsd

Y

Y

Y

--05 May

gMonthDay

interop50.xsd

Y

Y

Y

--05-31 every May 31st

gYear

interop50.xsd

Y

Y

Y

1999

gYearMonth

interop50.xsd

Y

Y

Y

1999-02 the month of February 1999, regardless of the number of days

hexBinary

interop50.xsd

Y

Y

Y

ID

interop50.xsd

Y

Y

Y

IDREF

interop50.xsd

Y

(JIRA452)Missing from output

Missing from output

IDREFS

interop50.xsd

Y

(JIRA452)Missing from output

Missing from output

int

interop50.xsd

Y

Y

Y

-2147483648, ... -1, 0, 1, ... 2147483647

integer

interop50.xsd

Y

(JIRA453)Works but not specifically implemented I beleive

Y (as C++)

...-1, 0, 1, ...

language

interop50.xsd

Y

Y

Y

en-GB, en-US, fr valid values for xml:lang as defined in XML 1.0

long

interop50.xsd

Y

Y

Y

-9223372036854775808, ... -1, 0, 1, ... 9223372036854775807

Name

interop50.xsd

Y

Y

Y

NCName

interop50.xsd

Y

Y

Y

negativeInteger

interop50.xsd

Y

Y

Y

... -2, -1

NMTOKEN

interop50.xsd

Y

Y

Y

NMTOKENS

interop50.xsd

Y

Y

Y

nonNegativeInteger

interop50.xsd

Y

Y

Y

0, 1, 2, ...

nonPositiveInteger

interop50.xsd

Y

Y

Y

... -2, -1, 0

normalizedString

interop50.xsd

Y

Y

Y

NOTATION

interop50.xsd

Y

Y

Y

positiveInteger

interop50.xsd

Y

Y

Y

1, 2, ...

QName

interop50.xsd

Y

Y

Y

short

interop50.xsd

Y

Y

Y

-32768, ... -1, 0, 1, ... 32767

string

interop50.xsd

Y

Y

Y

time

interop50.xsd

Y

Y

Y

13:20:00.000, 13:20:00.000-05:00

token

interop50.xsd

Y

Y

Y

unsignedByte

interop50.xsd

Y

Y

Y

0, 1, ... 255

unsignedInt

interop50.xsd

Y

Y

Y

0, 1, ...4294967295

unsignedLong

interop50.xsd

Y

Y

Y

0, 1, ... 18446744073709551615

unsignedShort

interop50.xsd

Y

Y

Y

0, 1, ...65535

ENTITIES

interop51.xsd

ENTITY

interop51.xsd

Other features

Feature

Schema

Java

C++

PHP

Note

SimpleTypeWithEnumeration

interop??.xsd

interop1v0.1.xsd

Test Setup

1.1:

  • The files interop1.xsd, interop1-in.xml are read by a Java, C++ or PHP test program and interop1-out.xml is written

General Observations

  • Java
  • C++
    • Removes any qualified names that appear in input. Theere is a potential problem w.r.t element references and qualified name raise when validating in Eclipse
    • Adds xsi:type to top level element
    • Removes schema location attribtute
    • Empty element <sdo:changeSummary xmlns:sdo="commonj.sdo" /> added to root & attributes come out in different order compared to Java - not significant but interesting

    • interop1-out.xsd doesn't validate against interop1.xsd
      • sdo:changeSummary element can't be empty
      • The output has become confused over the content of a substitution group
  • PHP
    • Removes element qualification
    • Adds xsi:type to top level element
    • Removes schema location attribtute

Test 2 - As test 1 but with data added in SDO through dynamic interface

Test 3 - As test 1 but with data added in SDO through generated interface

No generated interface in C++. Interface in PHP Is always generated dynamically

Test 4 - Reading and writing XSD files from Java/C++/PHP and comparing output

Using the schema from test1 have the SDO implementations create a schema based on type meta-data. The following tables record only issues. For types from the series 1 schema that present no problem no entry is included.

Feature

Schema

Java M1

C++ SVN

PHP R1.0.1

Note

interop?.xsd

Not Supported

Y

Only supported via Serialize()

No benefit in doing testing here at present as only C++ support direct schema export

Test 5 - Reading and writing RDBMS rows with data added in SDO through dynamic interface

The intention here is to do this on both DB2 and MySQL. First DB2

Feature

Java M1

PHP R1.0.1

Note

SMALLINT

Y

Y

INTEGER

Y

Y

BIGINT

Y

Y

FLOAT

Y

N (PECL7880)

DOUBLE

Y

N (PECL7880)

DOUBLE PRECISION

Y

N (PECL7880)

REAL

Y

N (PECL7880)

DATE

Y

Y

TIMESTAMP

Y

Y

TIME

Y

Y

CHAR

Y

Y

VARCHAR

Y

Y

Test 6 - As test 5 but with data added in SDO through generated interface

No generated interface in C++. Interface in PHP is always generated dynamically

Test 7 - Passing messages via Apache Axis2

In due course both Java and C++ SCA implementations will support Apache Axis 2 web services as a binding option. A useful interoperability test is to pass the schema from "series 1" from client to service and back to ensure that all marshalling and conversion operations work in both directions.

The steps in achieveing this will involve:

C++ Client - C++ SCA/proxy - C++ SCA/skeleton - C++ service

C++ Client - C++ SCA/proxy - Axis C/C++ Client - Axis C/C++ Server - C++ SCA/skeleton - C++ service

C++ Client - C++ SCA/proxy - Axis C/C++ Client - Axis Java Server - Java SCA/skeleton - Java service

Java Client - Java SCA/proxy - Axis Java Client - Axis C/C++ Server - C++ SCA/skeleton - C++ service

Test 8 - SDO Serialization

For example, for use when the SDO data object graph is serialised into a session.

Feature

Schema

Java M1

C++ SVN

PHP R1.0.1

Note

interop1.xsd

Support not clear. Java serialize?

Not supported directly, Can use XMLHelper/XSDHelper separately. Already tested above

Supported via Serialize but PHP specific format uses C++ XMLHelper/XSDHelper under the covers

No benefit in doing testing here at present as there is no common format for serializing model and instance data together.

Attachments

There are 1 attachment(s) stored for this page.

Tuscany/Interop (last edited 2009-09-20 22:47:49 by localhost)