- From: W. Eliot Kimber <eliot@isogen.com>
- Date: Thu, 29 May 1997 19:21:04 -0900
- To: w3c-sgml-wg@w3.org
All,
Just to prove to myself that it really was true, here's how the current XML
extended link can be derived from the new (in the TC) HyTime varlink
element form.
Here are the relevant parts of the HyTime meta-DTD (I've omitted those
attributes that don't correspond to anything in XML Link):
<!element
varlink -- Variable link --
-- Clause: 8.2.4 --
- O
(anchspec+)
>
<!attlist
varlink
anchrole -- Anchor role of varlink element if a self anchor --
NAME
#IMPLIED -- Default: varlink element is not a self anchor --
>
<!element
anchspec -- Anchor specification --
-- Clause: 8.2.4 --
- O
(#PCDATA)* -- Reference --
>
<!attlist
anchspec
anchrole -- Anchor role of varlink element if a self anchor --
NAME
#IMPLIED -- Default: varlink element is not a self anchor --
loctype CDATA #IMPLIED
-- Specifies the form of location address used by
referential attributes or content --
>
Here's a sample document derived from XML Link and HyTime varlink. I've
included the architecture declarations, which aren't valid XML (because XML
doesn't [yet] support notation attributes), so you can run this document
through NSGMLS or SGMLNORM if you want to). Obviously, to make this a
conforming XML document, you'd omit the architecture declarations--any
HyTime-aware tool would still understand the HyTime attribute and other
attributes defined by the HyTime standard--it's only general architecture
processors like SP that really need the architecture declarations.
<!DOCTYPE XML-Link-Test [
<?ArcBase HyTime>
<!ENTITY hytime.meta-DTD SYSTEM "hytime.mdt" >
<!NOTATION HyTime PUBLIC "ISO/IEC 10744:1992//NOTATION
Hypermedia/Time-Based Structuring Language//EN"
>
<!ATTLIST #NOTATION HyTime
ArcFormA NAME #FIXED "HyTime"
ArcNamrA NAME #FIXED "HyNames"
ArcDTD CDATA #FIXED "hytime.meta-DTD"
ArcDocF NAME #FIXED "hydoc"
ArcAuto NAME #FIXED "arcauto"
>
<!ELEMENT XML-Link-Test - - (XLink+) >
<!NOTATION XMLLoc PUBLIC "-//W3C//NOTATION XML Link Locator
Specification//EN">
<!-- NOTE: I don't pretend that this publid ID is correct.
-->
<!ELEMENT XLink - - (Locator+) >
<!ATTLIST XLink
xml-link NAME #FIXED "extended"
HyTime NAME #FIXED "varlink"
>
<!ELEMENT Locator - O EMPTY>
<!ATTLIST Locator
xml-link NAME #FIXED "locator"
HyTime NAME #FIXED "anchspec"
role NAME #IMPLIED
href CDATA #REQUIRED
HyNames CDATA #FIXED "#ARCCONT href anchrole role"
loctype CDATA #FIXED "href queryloc xmlloc"
>
]>
<xml-link-test>
<xlink>
<locator href="www.drmacro.com/rich-iii/index.html" role="foo">
<locator href="www.drmacro.com/hyperlink/index.html" role="bar">
</xlink>
</xml-link-test>
Here is the result of processing the above with SGMLNORM, requesting the
HyTime architectural instance, rather than the client instance:
C:\techdoc>sgmlnorm -A Hytime linktest.sgm
<HYDOC><VARLINK>
<ANCHSPEC ANCHROLE="FOO" LOCTYPE="href queryloc xmlloc">
www.drmacro.com/rich-iii/index.html</ANCHSPEC>
<ANCHSPEC ANCHROLE="BAR" LOCTYPE="href queryloc xmlloc">
www.drmacro.com/hyperlink/index.html</ANCHSPEC>
</VARLINK></HYDOC>
I leave treating the XML Link spec as a formal architecture as an exercise
to the reader.
Cheers,
E.
--
<Address HyTime=bibloc>
W. Eliot Kimber, Senior Consulting SGML Engineer
Highland Consulting, a division of ISOGEN International Corp.
2200 N. Lamar St., Suite 230, Dallas, TX 95202. 214.953.0004
www.isogen.com
</Address>
Received on Thursday, 29 May 1997 21:24:50 UTC