as asked here is the file. I have left the appendix part which is just value table for each constant.
thanks
<!ELEMENT ASTRO (DESCRIPTION?, DEFINITIONS?, INFO*, RESOURCE+) >
<!ATTLIST ASTRO
IDID#IMPLIED
>
<!ELEMENT RESOURCE (DEFINITIONS*, NAME?, TITLE?, DESCRIPTION?, INFO*,
FIELD*, TABLE*, LINK* ) >
<!ATTLIST RESOURCE
ID ID #IMPLIED
type(results|meta) "results" >
<!-- Details of the used parameters -->
<!ELEMENT INFO (#PCDATA)>
<!-- ID To refer this element
name Argument's canonical name (ASU);
when absent, the argument can't be used for back queries.
value Argument's contents
-->
<!ATTLIST INFO
ID ID #IMPLIED
name CDATA #IMPLIED
value CDATA #IMPLIED >
<!-- To specify ranges or lists of values
In case of use in <FIELD> tag, the type attribute
can be used to indicate the kind of values.
The multiple attribute specifies that it is
not an exclusive list of value, and in this case
the separator value indicates the character to
separate several values
type legal|actual
multiple yes|no
separator a letter, by default "," -->
<!-- Astronomical table -->
<!-- Note: table may be empty .. thus ================ FIELD* -->
<!ELEMENT TABLE (NAME?, TITLE?, DESCRIPTION?, COOSYS*, FIELD*, LINK*, DATA?) >
<!ATTLIST TABLE
ID ID #IMPLIED >
<!-- 1) In TABLE tag: Catalog or table shortname
ex: "GSC1.2"
2) In FIELD tag: field name
ex: "RA(J2000)" -->
<!ELEMENT NAME (#PCDATA) >
<!-- 1) In TABLE tag: Catalog or table description (paragraph)
ex: "This is an excerpt of the GSC1.2. This version was re-reduced
with PPM catalogue; see more details about..."
2) In FIELD tag: field description (paragraph) -->
<!ELEMENT DESCRIPTION (#PCDATA) >
<!ATTLIST DESCRIPTION
aboutCDATA#IMPLIED >
<!-- 1) In TABLE tag: Catalog or table title in one line
ex: "The HST Guide Star Catalog, Version 1.2 (Lasker+ 1996)"
2) In FIELD tag: field description (paragraph)
ex: "Right ascension in J2000, epoch of plate" -->
<!ELEMENT TITLE (#PCDATA) >
<!-- Definition of a field -->
<!ELEMENT FIELD (NAME?, TITLE?, DESCRIPTION?, VALUES*, LINK? ) >
<!-- ID To refer this element
unit Unit used for the field (see appendix)
datatype Datatype of field value
F-float, D-double, I-integer, A-ascii
L-boolean (logical), E-exponential
precision Precision of field value: number of significant digits
after the dot (ex: "3")
width number of characters "8"
format indicate the format by a "%fmt" template (as "printf()"
in language C). Use for coordinate format, time and date
formats (ex: "%RAh:%RAmd %DEd:%DEmd" - (see appendix)
ref Reference to the system for this field. For example it can be
a coordinate or a photometric system.
ex : #id("myJ2000") -> The syntax comes from Xpointers
name Alternative to specify the name of the field if it uses
only ascii characters (see the NAME element for the
other possibility)
ucd Unified column descriptor "POS_EQ_RA" (ESO/CDS work)
type To characterize the field
hidden for fields used typically for server/client
exchange no_query for fields which specify some parameters
(e.g. the equinox of a coordinate system)
trigger for fields which contain a parameter for an action
actualvalues Reference to the range or list of actual values
(it is an alternative to the <VALUES> entity in order to
be able to factorize them)
legalvalues Reference to the range or list of legal values
(it's an alternative to the <VALUES> entity in order to
be able to factorize them)
-->
<!ATTLIST FIELD
ID ID #IMPLIED
unit CDATA #IMPLIED
datatype (F|I|D|E|A|L) #IMPLIED
precision CDATA #IMPLIED
width CDATA #IMPLIED
format CDATA #IMPLIED
ref IDREF #IMPLIED
name CDATA #IMPLIED
ucd CDATA #IMPLIED
type (hidden|no_query|trigger) #IMPLIED >
<!-- To specify ranges or lists of values
In case of use in <FIELD> tag, the type attribute
can be used to indicate the kind of values.
The multiple attribute specifies that it is
not an exclusive list of value, and in this case
the separator value indicates the character to
separate several values
type legal|actual
multiple yes|no
separator a letter, by default "," -->
<!ELEMENT VALUES (MIN*, MAX*, OPTION*, NULL?) >
<!ATTLIST VALUES
ID ID #IMPLIED
multiple (yes |no) "no"
type (legal|actual) "legal" >
<!-- Min of a value range
value the min
inclusive yes|no (default: yes) -->
<!ELEMENT MIN (#PCDATA) >
<!ATTLIST MIN
value CDATA #REQUIRED
inclusive (yes |no) "yes" >
<!-- Max of a value range
value the max
inclusive yes|no (default: yes) -->
<!ELEMENT MAX (#PCDATA) >
<!ATTLIST MAX
value CDATA #REQUIRED
inclusive (yes |no) "yes" >
<!-- Item of list of values. The content of the
OPTION tag can be not empty to indicate
a corresponding sentence (ex: value="I/239"
and content: "Hipparcos catalog"
NOTE: OPTION may include VALUE for hierarchical menus.
(therefore OPTION can't have #PCDATA)
-->
<!ELEMENT OPTION (OPTION*) >
<!ATTLIST OPTION
nameCDATA #IMPLIED
value CDATA #REQUIRED >
<!-- Specify the value for the null representation
value the null representation -->
<!ELEMENT NULL (#PCDATA) >
<!ATTLIST NULL
value CDATA #REQUIRED >