280 likes | 493 Views
XML in CCSDS CCSDS Spring Meeting - Montreal. GMVSA 4081/04. Fran Martínez. Contents. Introduction to XML Description Pros and cons XML tools Orbit ML ODM to XML (XODM) conversion Requirements and description Tool architecture Conclusions Coming developments Tracking Attitude.
E N D
XML in CCSDSCCSDS Spring Meeting - Montreal GMVSA 4081/04 Fran Martínez
Contents • Introduction to XML • Description • Pros and cons • XML tools • OrbitML • ODM to XML (XODM) conversion • Requirements and description • Tool architecture • Conclusions • Coming developments • Tracking • Attitude Page 2
Introduction to XML • eXtensible Mark-up Language • Implementation • Tags : <name> … </name> • Attributes : <name attrib=“value”> • Used for data representation • Hierarchy • Structure • Qualification • No format • Definition and verification • DTD • Schema www.w3c.org Page 4
Introduction to XML • Hierarchy <stateVector> <time>2006-06-03T00:00:00.000</time> <position> <X>6655.9942</X> <Y>-40218.5751</Y> <Z>-82.9177</Z> </position> <velocity> <VX>3.11548208</VX> <VY>0.47042605</VY> <VZ>-0.00101495</VZ> </velocity> </stateVector> Page 5
Introduction to XML • Structure <eventsFile> <timeSpan> <start>2001-12-17T09:30:47-05:00</start> <end>2001-12-17T09:30:47-05:00</end> </timeSpan> <eventsRecord> <time>2001-12-17T09:30:47-05:00</time> <satelliteId>String</satelliteId> <name>String</name> <description>String</description> </eventsRecord> … <eventsRecord> <time>2001-12-17T09:30:47-05:00</time> <satelliteId>String</satelliteId> <name>String</name> <description>String</description> </eventsRecord> </eventsFile> Page 6
Introduction to XML • Qualification <stateVector frame="TOD”> <time scale="UTC" format="calendar"> 2006-06-03T00:00:00.000 </time> <position units="km"> <X>6655.9942</X> <Y>-40218.5751</Y> <Z>-82.9177</Z> </position> <velocity units="km/s"> <VX>3.11548208</VX> <VY>0.47042605</VY> <VZ>-0.00101495</VZ> </velocity> </stateVector> Page 7
Introduction to XML • No format <stateVector> <time>2006-06-03T00:00:00.000</time> <position> <X>6655.9942</X> <Y>-40218.5751</Y> <Z>-82.9177</Z> </position> <velocity> <VX>3.11548208</VX> <VY>0.47042605</VY> <VZ>-0.00101495</VZ> </velocity> </stateVector> X = 6655.9942 Y = -40218.5751 Z = -82.9177 X_DOT = 3.11548208 Y_DOT = 0.47042605 Z_DOT = -0.00101495 <stateVector><time>2006-06-03T00:00:00.000</time><position><X>6655.9942</X><Y>-40218.5751</Y><Z>-82.9177</Z></position><velocity><VX>3.11548208</VX><VY>0.47042605</VY><VZ>-0.00101495</VZ></velocity></stateVector> Page 8
Introduction to XML • Advantages • Data structuring and organisation • Extended in many fields • Generic tools • Innovative developments • Generalised validation mechanisms • Easy data transport with qualifiers • Object orientation • Disadvantages • Storage overhead • Not human readable format Page 9
Introduction to XML • DTD • Document structure • Defines items and sequences • Validation of syntax only <!ELEMENT stateVector (time, position, velocity)> <!ATTLIST stateVector frame CDATA #REQUIRED > <!ELEMENT time (#PCDATA)> <!ATTLIST time scale CDATA #REQUIRED format CDATA #REQUIRED comment CDATA #REQUIRED > <!ELEMENT position (X, Y, Z)> <!ATTLIST position units CDATA #REQUIRED Page 10
Introduction to XML • Schema • Defines document abstract structure • Validation of semantics • XML <xs:complexType name="stateVectorType"> <xs:sequence> <xs:element name="time" type="dateTimeType"/> <xs:element name="position" type="positionType"/> <xs:element name="velocity" type="velocityType"/> </xs:sequence> <xs:attribute name="frame" type="frameType" use="optional" default="J2000"/> </xs:complexType> <xs:complexType name="positionType"> <xs:sequence> <xs:element name="X" type="lengthMagnitude"/> <xs:element name="Y" type="lengthMagnitude"/> <xs:element name="Z" type="lengthMagnitude"/> </xs:sequence> <xs:attribute name="units" type="lengthUnits" use="optional" default="m"/> <xs:attribute name="frame" type="frameType" use="optional" default="J2000"/> </xs:complexType> Page 11
Introduction to XML • Parsing tools • xerces • DOM • SAX • Implementation in C++, Java, Tcl, … • Visualisation tools • Web navigators • CSS • XSLT • Validation tools • DTD • Schema Page 12
OrbitML • OrbitML Spacecraft Flight Dynamics Mark-up Language • Covers the whole s/c FD spectrum, including: • Orbit and attitude determination & prediction • Events generation • Geodetic Applications • Navigation • Handles related concepts • Satellites, transponders, ground stations, physical models, ... • Object (Data) oriented approach Page 14
OrbitML • Design drivers • Heritage from European FD packages … • … improved consistency and portability • Readability • Extensibility to other space applications • OrbitML is a rich source of FD metadata • Data model • hierarchy through XML • data typing through XML Schema … • … extended by OrbitML • Data relationship • basic by XML and Schema … • … extended by OrbitML Page 15
ODM to XML Conversion Tool • Requirements • ODM XML notation • Analysis of ODM • Translation into XML (XODM) • XML structured data (data tree) • Investigation of conversion tool • Approach • Analysis of ODM data structures • Definition of the XML approach • Existing tools • Existing supporting elements (OrbitML) • Definition of the XODM structures • Prototype demonstration Page 17
ODM to XML Conversion Tool • Tool generation rationale • Isolate memory structures from data format representations (ODM & XODM) • Perform validation of input files • Common mapping to memory for both file representations • Data structure sharing • Bi-directional reading/writing • Object oriented approach • XML/Schema UML C++ • Low level items reuse • Tools for scanning and parsing • xerces-c/SAX for XODM • lex + yacc for ODM Page 18
ODM to XML Conversion Tool Page 19
ODM to XML Conversion Tool OPM Data Structure Page 20
ODM to XML Conversion Tool OEM Data Structure Page 21
ODM to XML Conversion Tool ODM Parser Architecture Page 22
ODM to XML Conversion Tool Xerces/SAX Architecture Example Page 23
ODM to XML Conversion Tool • Tool generation conclusions • Easy translation of data elements to XML • Portable C++ (linux, windows, solaris) • Full definition through Schema • Proven reuse of OrbitML low level items • Schema • C++ data representation • XODM integrated in OrbitML • Difficulties • Format vs. Data structure • Insertion of comments (ambiguities) • ODM fixed units vs. XODM attributes Page 24
Coming Developments • CCSDS Approach • For already analysed elements (ODM) • For items to be processed • Procedure • Same as for ODM (?) • Existing formats/structures • Newly defined structures (directly in XML) • Define procedure • Analysis • Definition of structures • Identification of reusable items • To come next • Tracking • Attitude Page 26
Coming Developments OrbitML observation file type structure Page 27
Coming Developments OrbitML attitude file type structure Page 28