System for formatting Objects as XML XmlFormat
The XmlChan class allows AST objects to be represented in the form of XML in several ways
(conventions) and the XmlFormat attribute is used to specify which of these should be
used. The formatting options available are outlined in the "
Formats Available"
section
below.
By default, an XmlChan will attempt to determine which format system is already in use, and will set
the default XmlFormat value accordingly (so that subsequent I/O operations adopt the same
conventions). It does this by looking for certain critical items which only occur in particular formats.
For details of how this works, see the "
Choice of Default Format"
section below. If you wish to ensure
that a particular format system is used, independently of any XML already read, you should
set an explicit XmlFormat value yourself.
"
NATIVE"
: This is a direct conversion to XML of the heirarchical format used by a standard XML
channel (and also by the NATIVE encoding of a FitsChan).
"
QUOTED"
: This is the same as NATIVE format except that extra information is included which
allows client code to convert the XML into a form which can be read by a standard AST Channel. This
extra information indicates which AST attribute values should be enclosed in quotes before being
passed to a Channel.
"
IVOA"
: This is a format that uses an early draft of the STC-X schema developed by
the International Virtual Observatory Alliance (IVOA - see "
http://www.ivoa.net/"
) to
describe coordinate systems, regions, mappings, etc. Support is limited to V1.20 described at "
http://www.ivoa.net/Documents/WD/STC/STC-20050225.html"
. Since the version of STC-X finally
adopted by the IVOA differs in several significant respects from V1.20, this format is now
mainly of historical interest. Note, the alternative "
STC-S"
format (a simpler non-XML
encoding of the STC metadata) is supported by the StcsChan class.
If the previous document read contained any elements in any of the STC namespaces ("
urn:nvo-stc"
,
"
urn:nvo-coords"
or "
urn:nvo-region"
), then the default value is IVOA.
If the previous document read contained any elements in the AST namespace which had an associated
XML attribute called "
quoted"
, then the default value is QUOTED.
Otherwise, if none of these conditions is met (as would be the case if no document had yet been read), then NATIVE format is used.
Setting an explicit value for the XmlFormat attribute always over-rides this default behaviour.
"
IVOA"
XmlChan format is of historical interest
only.
The following points should be noted when using an XmlChan to read or write STC information (note, this list is currently incomplete):
Objects can currently only be read using this format, not written.
The AST object generated by reading an
STCMetadata
element will be an instance of one of the AST "
Stc"
classes: StcResourceProfile, StcSearchLocation,
StcCatalogEntryLocation, StcObsDataLocation.
When reading an STCMetadata element, the axes in the returned AST Object will be in the order space, time, spectral, redshift, irrespective of the order in which the axes occur in the STCMetadata element. If the supplied STCMetadata element does not contain all of these axes, the returned AST Object will also omit them, but the ordering of those axes which are present will be as stated above. If the spatial frame represents a celestial coordinate system the spatial axes will be in the order (longitude, latitude).
Until such time as the AST TimeFrame is complete, a simple 1-dimensional Frame (with Domain set to TIME) will be used to represent the STC TimeFrame element. Consequently, most of the information within a TimeFrame element is currently ignored.
SpaceFrame elements can only be read if they describe a celestial longitude and latitude axes supported by the AST SkyFrame class. The space axes will be returned in the order (longitude, latitude).
Velocities associated with SpaceFrames cannot be read.
Any GenericCoordFrame elements within an AstroCoordSystem element are currently ignored.
Any second or subsequent AstroCoordSystem found within an STCMetaData element is ignored.
Any second or subsequent AstroCoordArea found within an STCMetaData element is ignored.
Any OffsetCenter found within a SpaceFrame is ignored.
Any CoordFlavor element found within a SpaceFrame is ignored.
SpaceFrame elements can only be read if they refer to one of the following space reference frames: ICRS, GALACTIC_II, SUPER_GALACTIC, HEE, FK4, FK5, ECLIPTIC.
SpaceFrame elements can only be read if the reference position is TOPOCENTER. Also, any planetary ephemeris is ignored.
Regions: there is currently no support for STC regions of type Sector, ConvexHull or SkyIndex.
The AST Region read from a CoordInterval element is considered to be open if either the lo_include or the hi_include attribute is set to false.
RegionFile elements are not supported.
Vertices within Polygon elements are always considered to be joined using great circles (that is, SmallCircle elements are ignored).