©2003 altova gmbh. all rights reserved. architecting xml schemas for oracle xml db september 10th,...

21
©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member W3C Advisory Committee

Upload: philippa-allen

Post on 16-Jan-2016

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Architecting XML Schemas for Oracle XML DB

September 10th, 2003

Alexander Falk

President, CEO – Altova, Inc.Member W3C Advisory Committee

Page 2: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Alexander Falk Bio

► Co-founded ALTOVA in 1992

► Wrote XML Parser and XML Schema Validator used within XMLSPY

► Member of W3C XML Schema WG in 2001

► Member of W3C Advisory Committee

Page 3: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Agenda

► XML Schema Overview

► Schema Components

► Architecting XML Schemas

► Data Mapping & Transformations

► XML Schema & Oracle XML DB

► Tools for XML Schemas

► Live Demonstration

► Q&A

Page 4: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

What is XML Schema?

► DTDs not sufficient for data modeling

► XML-Data, XDR, SOX, ... XML Schema

► Object-Oriented Features

Distinction between types and instances

Inheritance

Support for static vs. Dynamic types

► Make it easy to translate from programming languages to XML and vice versa

Page 5: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

DTD‘s in a Nutshell

► Document Type Definitions (DTDs)

Uses special syntax (SGML-like)

Everything is a string (#PCDATA)

Reuse only through macros (parameter entities)

Concise syntax (although somewhat cryptic)

► Example:

<!ELEMENT Age (#PCDATA)>

Page 6: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Cross-Referencing XML with DTD’s

File “Person.xml” File “Person.dtd”

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE Person SYSTEM "Person.dtd">

<Person>

<First>Alexander</First>

<Last>Falk</Last>

<Age>34</Age>

</Person>

<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT Person (First, Middle?, Last, Age)>

<!ELEMENT First (#PCDATA)>

<!ELEMENT Middle (#PCDATA)>

<!ELEMENT Last (#PCDATA)>

<!ELEMENT Age (#PCDATA)>

Page 7: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Schema in a Nutshell

► XML Schema

Uses XML syntax

Uses Datatypes: built-in and custom-defined

Reuse through groups and inheritance

Verbose syntax (more easily readable)

► Example:

<element name=“Age” type=“integer”/>

Page 8: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Cross-Referencing XML with SchemasFile “Person.xml” File “Person.xsd”<?xml version="1.0" encoding="UTF-8"?>

<Person xmlns:xsi="http://www.w3.org/ 2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Person.xsd">

<First>Alexander</First>

<Last>Falk</Last>

<Age>34</Age>

</Person>

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/ XMLSchema"> <xs:element name="Person"> <xs:complexType> <xs:sequence> <xs:element name="First“ type="xs:string"/> <xs:element name="Middle“ type="xs:string“ minOccurs="0"/> <xs:element name="Last“ type="xs:string"/> <xs:element name="Age“ type="xs:integer"/> </xs:sequence> </xs:complexType> </xs:element></xs:schema>

Page 9: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

XML Schema - Benefits

► Huge industry support (Oracle, BEA, Microsoft, IBM, etc.)

► Information modeling in XML

► Representing OO capabilities in XML data

► Offloading consistency checking to the validation process in the XML parser

► Cost-saving through reduced development time

Page 10: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Schema Components

►Elements and their content model

<element name="item"><annotation><documentation>One item of a purchase order with its

details</documentation></annotation><complexType><sequence><choice><element name="productName" type="string"/><element name="productName" type="string"/>

</choice><element name="quantity"><simpleType><restriction base="positiveInteger"><maxExclusive value="100"/>

</restriction></simpleType>

</element><element name="price" type="decimal"><annotation><documentation>Needs to be specified in

US$</documentation></annotation></element><element ref="ipo:comment" minOccurs="0" maxOccurs="5"/><element name="shipDate" type="date" minOccurs="0"/>

</sequence><attribute name="partNum" type="ipo:Sku"/>

</complexType></element>

Page 11: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Schema Components

►Attributes and Attribute Groups

<xs:attribute name="name" type="xs:NCName"/>

<xs:attribute name="mixed" type="xs:boolean" use="optional" default="false"/>

<xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>

<xs:attribute name="final" type="xs:derivationSet"/>

<xs:attribute name="block" type="xs:derivationSet"/>

Page 12: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Schema Components►ComplexTypes and SubstitutionGroups

<xsd:complexType name="PersonType"><xsd:sequence><xsd:element name="First" type="xsd:string"/><xsd:element name="Last" type="xsd:string"/><xsd:element name="Title" type="xsd:string“ minOccurs="0"/>

<xsd:element name="PhoneExt" type="xsd:int"/><xsd:element ref="EMail"/>

</xsd:sequence></xsd:complexType><xsd:element name="Person" type="PersonType"/><xsd:element name="VIP“

substitutionGroup="Person"><xsd:complexType><xsd:complexContent><xsd:extension base="PersonType"><xsd:attribute name="IQ" type="xsd:int"/>

</xsd:extension></xsd:complexContent>

</xsd:complexType></xsd:element>

Page 13: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Schema Components

►Extension of ComplexType

<complexType name="Address"><sequence><element name="name" type="string“

minOccurs="0"/><element name="street“

type="string"/><element name="city" type="string"/>

</sequence></complexType><complexType name="US-Address"><complexContent><extension base="ipo:Address"><sequence><element name="state“

type="ipo:US-State"/><element name="zip“

type="positiveInteger"/></sequence>

</extension></complexContent>

</complexType>

Page 14: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Schema Components

►Defining your own SimpleTypes<xs:simpleType name="toddlerCounting"><xs:union><xs:simpleType><xs:restriction base="xs:int"><xs:minInclusive value="1"/><xs:maxInclusive value="3"/>

</xs:restriction></xs:simpleType><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="many"/>

</xs:restriction></xs:simpleType>

</xs:union></xs:simpleType>

Page 15: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Architecting XML Schemas

► From Scratch

Using established OO methodologies, using Schema design tools, from OO class libraries (Java, C++, etc.)

► By Example (Use-Cases)

From any set of existing XML documents

► By Conversion

From existing DTD, DCD, or other schema

From SQL Database Schema

Page 16: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Data Mapping & Transformations

►Schema-based mapping

►Integrate data from different sources

►Web Services

Page 17: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

XML Schema & Oracle XML DB

► XML Schema is central to Oracle 9i

► It describes how XML documents are stored inside the database

► It allows validation of XML documents in the database

Page 18: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Extending XML Schema for Oracle 9i

► Use SQLName to specify column names

► Use SQLType to specify storage datatype<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema“ xmlns:xdb="http://xmlns.oracle.com/xdb"> <xs:complexType name=“PersonType“ xdb:SQLType=“PERSON_TYPE"> <xs:sequence> <xs:element name="First“ type="xs:string“ xdb:SQLName=“FIRST_NM" xdb:SQLType=“NVARCHAR2"/> <xs:element name="Middle“ type="xs:string“ minOccurs="0" xdb:SQLName=“MIDDLE_NM" xdb:SQLType="NVARCHAR2"/> <xs:element name="Last“ type="xs:string" xdb:SQLName=“LAST_NM" xdb:SQLType="NVARCHAR2"/> <xs:element name="Age“ type="xs:short" xdb:SQLName=“PERSON_AGE" xdb:SQLType=“NUMBER"/> </xs:sequence> </xs:complexType></xs:schema>

Page 19: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

XML Schema – Tools Overview

► Graphical Schema Editors Visual Studio .NET

xmlspy® 2004

► Mapping & Transformation Tools mapforce™ 2004

► Parsers Oracle XML DB

Xerces

MSXML 4.0 & System.XML (.NET Framework)

Page 20: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

Demo Time

Live Demonstration

Page 21: ©2003 Altova GmbH. All Rights Reserved. Architecting XML Schemas for Oracle XML DB September 10th, 2003 Alexander Falk President, CEO – Altova, Inc. Member

©2003 Altova GmbH. All Rights Reserved.

► Questions & Answers

XMLSPY, AUTHENTIC, STYLEVISION, MAPFORCE, MARKUP YOUR MIND, AXAD, NANONULL, and ALTOVA are trademarks of Altova GmbH (registered in numerous countries). All other trademarks are the property of their respective owners.