+ disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++ + XHydro Umsetzung in...

16
+ disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++ www.disy.net + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter Dr. Wassilios Kazakos Leiter Geschäftsentwicklung

Transcript of + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++ + XHydro Umsetzung in...

Page 1: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

+ disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++ www.disy.net +

XHydroUmsetzung in ein

XML SchemaDr. Gabor Nagypal

Projektleiter

Dr. Wassilios KazakosLeiter Geschäftsentwicklung

Page 2: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

2© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Die ThemenNeue oder veränderte AnforderungenPerformanzLeichte Verarbeitung durch ProgrammeModularität

StrukturUmsetzungErweiterungsmöglichkeiten

Einsatzszenarien

Page 3: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

3© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Neue oder veränderte AnforderungenPerformanz

hat Vorrang vor MenschenverständlichkeitGrund: kurze Dokumente auch ohne Komprimierung

auf dem ersten Workshop ein häufig geäußerter WunschFolge: kurze Tagnamen

Leichte Verarbeitung in ProgrammenGrund: Daten sollten bereits anhand des Tagnamens erkennbar sein

deutlich einfachere Programmierung in XSLT oder JavaScript Folge: eindeutige Tagnamengegenläufige Forderung zur Performanz, da Tagnamen evtl. länger werden

Hohe ModularitätGrund: es ist unmöglich „das perfekte Schema“ zu entwickeln

verschiedene Anforderungen in verschiedenen Einsatzszenarienviele Anforderungen werden erst im Einsatz sichtbarleichte Erweiterbarkeit und/oder Veränderbarkeit ist gewünscht

Folge: das Schema besteht aus mehreren Modulen

Page 4: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

4© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Performanz: kurze TagnamenDas offizielle Schema Version verwendet kurze Tagnamen

das XML Dokument ist nicht mehr verständlich für Menschenaber immer noch Menschenlesbar

mit Standard XML Technologie ist eine verständliche Version leicht erstellbarz.B. durch XSLT eine HTML Seite

Beispiel: lange vs. kurze Tagnamen

<timeSeriesList><timeSeries>...<timedDataElement>...<dataValue><dFloatValue>1.0</dFloatValue>...

<tsel><tse>...<tde>...<v><vf>1.0</vf>...

Page 5: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

5© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Performanz: das kürzeste Dokument

Übermittlung eines Werts mit ZeitstempelUnformatiert: nur 166 Bytes

<tsel xmlns="http://www.xhydro.org/schemas/official/2007/05"<tse> <d> <tde> <ts> <tsv>2007-04-02T08:30:56</tsv> </ts> <vls> <v> <vf>1.0</vf> </v> </vls> </tde> </d> </tse></tsel>

Page 6: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

6© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Leichte Verarbeitung in ProgrammenEs gibt Elementnamen die mehrmals im UML Modell vorkommen

name, description ...für organization, device ...

Aufgabe: Direkter Zugriff auf den Wert über XSLT, JavaScript, etc. Falls der Name global eindeutig ist, ist es einfach

z.B. JavaScript: getElementByName(„xxx“) Methodez.B. XSLT: „*//xxx“ XPath Muster

Daher: eindeutige Namen für jedes Element im Schemau.U. längere Namen

oName (on), oDescription (od) statt name (n) und description (d)widerspricht der Performanz Anforderung

in der Praxis sind die Unterschiede aber nicht großKonvention:

Elemente, die sehr häufig vorkommen, bekommen die kürzeren Namen

Page 7: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

7© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Modularität: Struktur

ParameterCodes

UnitCodes ...

DataValue

MetaData

Common

Location

TimeSeries

XHydro XHydroArchive ... }

}

}Code-Listen

Module

Schemata

Ref. SystemCodes

Page 8: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

8© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Modularität: Umsetzung

<xs:complexType name="dataValueType"> <xs:complexContent> <xs:extension base="_complexBaseType"> <xs:sequence> <xs:element name="vq" type="dataValueQualityType" minOccurs="0" /> <xs:group ref="dataValueGroup" /> ...

<xs:complexType name="dataValueQualityType">

...<xs:group

name="dataValueGroup">...

...targetNamespace=„http://www.xhydro.org/schemas/official/2007/05“...<xs:include schemaLocation="../modules/DataValue.xsd" /><xs:include schemaLocation="../modules/MetaData.xsd" /><xs:include schemaLocation="../modules/TimeSeries.xsd" />...

TimeSeries.xsd

MetaData.xsdDataValue.xsd

XHydro.xsd

Page 9: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

9© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Modularität: Veränderung

<xs:complexType name="dataValueType"> <xs:complexContent> <xs:extension base="_complexBaseType"> <xs:sequence> <xs:element name="vq" type="dataValueQualityType" minOccurs="0" /> <xs:group ref="dataValueGroup" /> ...

<xs:complexType name="dataValueQualityType">

...<xs:group

name="dataValueGroup">...

...targetNamespace=„http://www.xhydro.org/schemas/archive/2007/05“...<xs:include schemaLocation="../modules/DataValue.xsd" /><xs:include schemaLocation="../modules/MetaDataStrict.xsd" /><xs:include schemaLocation="../modules/TimeSeries.xsd" />...

TimeSeries.xsd

MetaDataStrict.xsdDataValue.xsd

XHydroArchive.xsd

Page 10: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

10© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Praktische SchwierigkeitenModularität erhöht die technische Komplexität

Laut W3C-Spezifikation sollte beispielsweise das redefine XML Schema Konstrukt verwendet werden

Die untersuchten Werkzeuge haben unterschiedliche BugsBeispiel XML Spy: Probleme mit redefineBeispiel Apache Xerces: Probleme mit relativen URIs

Unser Ziel: eine Lösung, die möglichst mit allen Werkzeugen und auf allen Plattformen funktioniert

praktisch unmöglich alles auszuprobierenDas Schema wurde/wird mit den folgenden Werkzeugen getestet

XML Spy 2006/2007 (Marktführender XML Editor)Eclipse Web Tools Platform (sehr weit verbreitetes Entwicklungswerkzeug)Java JDK 6 Programm, also Apache Xerces (offizielle Lösung von Sun).NET 2.0 C# Programm (offizielle Lösung von Microsoft)

Page 11: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

11© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Einsatzszenario: XHydro ArchiveIm XHydro-Schema sind alle Metadaten-Elemente optional

wichtig um auch kompakte Dokumente zu unterstützenMetadaten werden beim Austausch zwischen Messgerät und Zentrale häufig nicht benötigt

Während der Archivierung werden die vollständigen Metadaten benötigtsollte auch durch XML Schema validiert werden

LösungMetaDataStrict.xsd Modul

leichte Veränderung von MetaData.xsddie meisten Elemente obligatorischz.B. aus <xs:group ref="unitCodeGroup" minOccurs="0"> wird<xs:group ref="unitCodeGroup">

TimeSeriesStrict.xsd Modulleichte Veränderung von TimeSeries.xsdglobale Metadaten-Elemente obligatorisch

XHydroArchive.xsdMetaDataStrict und TimeSeriesStrict anstatt MetaData und TimeSeries einfügenneuer Namensraum definieren

Page 12: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

12© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Einsatzszenario: XHydro „Küste“Beispielszenario (fiktiv)Im Küstenbereich könnten ganz andere Ortsangaben nützlich seinLösung

Location Modul ganz austauschenLocationShore.xsdXHydroShore.xsd

LocationShore anstatt Location einbindenneuer Namensraum

Page 13: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

13© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Einsatzszenario: herstellerspezifische Angaben

XHydro untertützt ad-hoc Erweiterungen durch das „any“ Konstruktkeine Schema-Erweiterungen sind nötig!

Fiktives Beispiel: disy möchte auch die Serialnummer eines Messgeräts übermittelnLösung

...<tsel xmlns="http://www.xhydro.org/schemas/official/2007/05"xmlns:d="http://www.disy.net/device" ...<pd> <ext> <d:serial>ABCDEFG</d:serial> </ext> <dn>Device #1</dn> <dd>This is the disy device #1</dd></pd>...

Page 14: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

14© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Das Schema praktisch einsetzenXML Generierung (z.B. am Messgerät)

Schema ist nicht erforderlichDer richtige Namensraum soll verwendet werden<tsel xmlns=„http://www.xhydro.org/schemas/official/2007/05“ ...

Fall 1: XML Dokumente enthalten keinen Hinweis auf die SchemadateiSchema ist durch den Namensraum definiertDie Datei kann ohne Validierung eingelesen/verarbeitet werdenFür eine Validierung muss der Parser/Editor konfiguriert werden

Das Mapping „Namensraum <-> Schemadatei“ muss definiert werden

Fall 2: XML Dokumente enthalten einen Hinweis auf die Schemadatei<tsel xsi:schemaLocation=„http://www.xhydro.org/schemas/official/2007/05 http://www.xhydro.org/schemas/official/2007/05/XHydro.xsd“Für die Validierung kann die im Dokument spezifizierte Datei verwendet werden, ohne weitere KonfigurationEine andere Datei (z.B. eine lokale Kopie) kann trotzdem konfiguriert werden.

Page 15: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

15© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Das Schema im Webhttp://www.xhydro.org/schemas/official/2007/05

Enthält eine Beschreibung der ModuleEnthält Download-Links auf

das Schemadie Moduledie Code-Listen

Konventionen: Unter dem Schema-Namensraum wird ein Verweis auf die Schemadateien bereitgestelltneue Schemaversionen erzeugen neue Namensräumeschon jetzt: http://www.xhydro.org/schemas/archive/2007/05z.B. in der Zukunft: http://www.xhydro.org/schemas/official/2099/01

Page 16: + disy Informationssysteme ++ Stephanienstraße 30 ++ D-76133 Karlsruhe ++  + XHydro Umsetzung in ein XML Schema Dr. Gabor Nagypal Projektleiter.

16© disy Informationssysteme GmbH, www.disy.net, [email protected], +49 721 1600600

Besten Dank für Ihre Besten Dank für Ihre AufmerksamtkeitAufmerksamtkeit

Besuchen Sie uns… www.disy.net

Dr. Gabor NagypalDr. Wassilios Kazakos