[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: adding xlink:type attribute



Ethan Davis wrote:

Hi Benno,

I've updated our main static catalogs to include xlink:type="simple". Haven't dealt with our generated catalogs yet.
Since all the uses of xlink in the InvCatalog schema at this point are 
simple xlinks, I was thinking it would be a convenience to provide a 
default value for xlink:type. That way all existing catalogs would 
automatically be complient with the XLink spec. At least they would 
look that way if the application was paying attention to the DTD/XSD. 
As with most default values in XML docs, I think explicitly including 
xlink:type="simple" in our catalog documents is the way to go. Just 
hoping to buy us some pain free complience.
My knowledge of XML is very limited, so please help me out here.  My 
understanding of namespaces was that the href in the namespace was just 
a URI, i.e. an unique identifier, not a file to be read.  In other 
words, a program can sort out the different name spaces without ever 
actually reading the files referenced.   If one can put default values 
in a DTD (and presumably in a schema), then that would have to be read 
before the file could be "understood".   So you are saying that Mozilla 
is required to read the dtd and/or schema before parsing the document? 
and if we put in default values for the xlink:type, the Xlink aware code 
would use that default value even though it does not understand much 
else in the thredds schem(a)?   If so, that would be pretty interesting.
I was just looking at your catalog at

http://iridl.ldeo.columbia.edu/SOURCES/thredds.xml

I see the xlink:type attributes but not the CSS stuff (<?xml-stylesheet type="text/css" href="threddsstyle.css" ?>). Do you have an example that does include that? Also, can you point me to your threddsstyle.css so I can take a look at it?
Yes, it is not there yet.  css is pretty limited -- probably cannot do 
anything really useful with it (i.e. my current version mostly messes 
things up), but it is interesting because it handles namespaces. And 
because it shows that mozilla "understands" xlink.   Here is my example 
(which should appear on the site tomorrow when I can install a new version).
@namespace threddsv06 url(http://www.unidata.ucar.edu/thredds);
@namespace thredds url(http://www.unidata.ucar.edu/namespaces/thredds/InvCatalog/v1.0);
@namespace xlink url(http://www.w3.org/1999/xlink);
@namespace mods url(http://www.loc.gov/mods/v3);
thredds|dataset {display:block; padding-left: 40px; list-style-type: disc;} thredds|dataset:before {display:block; text-indent: -40px; font-weight:bold; content: attr(name)} thredds|catalogRef:before {display:block; text-indent: -40px; font-weight:bold; content: attr(xlink|title)}
thredds|catalogRef {display:block; padding-left: 40px; font-weight:bold;}
thredds|dataset documentation{ display:list-item; font-weight:normal; color:green;}
thredds|dataset *{display:listitem; font-weight:normal;}
thredds|catalogRef documentation{ display:list-item; font-weight:normal; color:brown;}
thredds|catalogRef *{display:inline}
threddsv06|dataset {display:block; padding-left: 40px; list-style-type: disc;} threddsv06|dataset:before {display:block; text-indent: -40px; font-weight:bold; content: attr(name)} threddsv06|catalogRef:before {display:block; text-indent: -40px; font-weight:bold; content: attr(xlink|title)} threddsv06|catalogRef {display:block; padding-left: 40px; font-weight:bold;} threddsv06|dataset documentation{ display:list-item; font-weight:normal; color:green;}
threddsv06|dataset *{display:listitem; font-weight:normal;}
threddsv06|catalogRef documentation{ display:list-item; font-weight:normal; color:brown;}
threddsv06|catalogRef *{display:inline}
mods|mods{display:block; color:black}
mods|mods role,originInfo,typeOfResource,identifier,caption{display:none; color:green}
mods|mods relatedItem:before {color:black; content: " in "}
mods|mods part detail[type="volume"] {display:inline;font-weight:bold; color:brown} mods|mods part detail[type="issue"] {display:inline;font-style:italic; color:brown}
mods|mods part detail[type="issue"]:before {content: "("}
mods|mods part detail[type="issue"]:after {content: ")"}
mods|mods part extent[unit="page"]:before {content: "pp"}
mods|mods part extent[unit="page"]:before {content: "pp"}
mods|mods subTitle:before {content: "--"}
mods|mods end:before {content: "--"}
mods|mods part:after {content: "."}
mods|mods titleInfo{font-style:italic;}

Note that I was contemplating inserting a mods namespace for references, which is why the mods tags were there.
However, one could alternatively specify an XSLT stylesheet, which 
should be able to render a THREDDS xml file usefully.   And one could 
use javascript if necessary to create buttons, etc.
But I have not gotten there yet.

Benno








Thanks,

Ethan



Benno Blumenthal wrote:

Ethan Davis wrote:

Hi Benno,

I will go through our catalogs and add the xlink:type attribute. I'll also add it to our catalog generation tools.


That would be great.

In the InvCatalog 0.6 spec xlink:type had a default value of 
"simple". Looks like that got dropped in 1.0. Does adding this as a 
default seem like a good idea? Or would requiring it but no default 
value be preferable?
my reading of xlink is that xlink:type is required, and the way we are using xlink its value is "simple".
There is no provision for a default value.

The reason for doing this is so that we can build on top of software that already understands xlink, which, if we have not written it, is expecting xlink:type="simple" before processing it.
Benno


--
Dr. M. Benno Blumenthal          address@hidden
International Research Institute for climate prediction
The Earth Institute at Columbia University
Lamont Campus, Palisades NY 10964-8000   (845) 680-4450