Non-HTML URL Examples

As the use of the URL in XML is being debated, it is 
worth noting some relevant facts:

1.  The use of the URL in XML is not bounded by the 
use of the URL in HTML.   It is bounded by the RFCs.
No one disputes this although the argument has 
been presented several times that getting to 
far beyond HTML's use may impair XML marketability.
That argument may be one of the reasons some
mistakenly believe XML is a replacement for HTML.
In fact, as argued next, XML can only define 
the way in which an XML designer expresses the 
URL use in the design.

2.  XML is a metalanguage.  HTML is an application.
This is worth noting because as a metalanguage, an 
XML designer might choose to break up or use 
a URL in many ways not anticipated by other 
application designers.  While this makes life 
hard for the XML software designer, it it nonetheless 
a fact of life for metalanguage applications.
It may impair the interoperability of XML 
applications in the same way current SGML 
applications do not interoperate, that is, without 
a transform, it is meaningless to inline a 
TEI document into a MIL-PRF-87269 database.

3.  If XML is indeed a metalanguage, it's URL 
and link definitions should be capable of 
declaring the following VRML examples.  Whether this 
is *worth* declaring is an application issue.
The point is, in the HyTime or TEI choices, 
the winner should be capable of declaring the 
following examples.

Here are examples from VRML.  First, VRML 
defines a URL as a field type.  Specifically:

url [ ] is an exposedField of type MFString

An exposedField has an implied eventIn and 
eventOut (think of it as an input and output jack)
to connect ROUTEs.  There are several exposedFields
in VRML and more can be added by PROTOtypes.
An MF string is a space or comma delimited set 
of characters, typically, options.

While the URL itself is defined by the RFC 
as has been described in other posts, the 
VRML application only cares that it is a string.
This allows the semantics to be applied per 
node type.  Thus:

Inline { url ["myworld.wrl"] }

where an inline file resembles an SGML 
subdoc in that it is an encapsulated namespace.

A defined name is not recognized if instanced 
by a USE within the inlining file.  A defined 
name within the inlining file is not recognized by 
an inlined file.  The URL within the Inline 
can contain multiple URL strings that define a 
prioritized list of places to find the URL target.
This list is used to provide a high-to-low
redundant backup (e.g, local disk, local net, WAN, Web) 
for each reference.

If a URL is resolved, it returns nodes which are
children of the group parent of the Inline node.
If empty, no action is taken (default).  Implementations 
can use other rules such as using one URL to read high
priority/high bandwidth, while using a lower priority on a 
slower line.

The URL list can be changed using the set_url eventIn 
implied by the definition of the URL as an exposedField. 

Anchor { url [ ] parameter [ ] 

where the URL field is also an exposedField of type MFString
and a prioritized list.  It is the parameter field (also, an 
exposedField MFString) which contains additional strings 
used by the browser when a target page is read.  These 
fields depend on the browser for functionality.  The default 
is empty.  The #syntax we are used to CAN be appended 
to the URL string, but it is restricted to name a Viewpoint 
in the target file.  As in HTML, using ONLY #viewpoint 
is a camera view in the local file.  Set_parameter eventIns 
are available because it is an exposedField.

Last but most revealing is the following

Script { url "myscript.js" 


Script { url "javascript:
		function set_position(pos, time) {
			position = pos;

where a Script node can use the actual text of the 
script as long as the script notation is defined 
as shown, eg., javascript: for that language, etc.
VRML does not REQUIRE support for any language.
It only requires that the script be indicated as shown.

These URL examples are provided in contrast to the 
use of HTML anchors as examples of common 
practice and to note that alternatives are used 
in common Internet languages, are learnable, 
and are being used everyday.

Len Bullard
Lockheed Martin
C2 Integration Systems