Re: Editor's draft of XLink 1.1

Norman Walsh scripsit:

> I've published the latest editor's draft of XLink 1.1:
>
>   http://www.w3.org/XML/Group/2004/xmlcore/xlink11/

[snip]

> John, can you verify that I got the right RNC?

No, that's the one used prior to the introduction of simple conformance.

Here's what you should have:

The following RELAX NG grammar files, expressed in the compact syntax,
validate XLink 1.1.  Validating against xlink-simple.rnc checks for
simple conformance; validating against xlink.rnc (which depends on
xlink-simple.rnc) checks for full conformance.  These files are provided
only as a convenience for application developers; they have no normative
status.

xlink.rnc:

namespace xlink = "http://www.w3.org/1999/xlink"

include "xlink-simple.rnc" {
        anyElement = simple | extended | foreignElement
        }

label.att = attribute xlink:label {xsd:NCName}
from.att = attribute xlink:from {xsd:NCName}
to.att = attribute xlink:to {xsd:NCName}

extended = element * {
                attribute xlink:type {"extended"},
                foreign.att*, role.att?, title.att?,
                (title | resource | locator | arc | anyElement | text)*
                }

title = element * {
                attribute xlink:type {"title"}, foreign.att*,
                (anyElement | text)*
                }

resource = element * {
                attribute xlink:type {"resource"}, foreign.att*,
                role.att?, title.att?, label.att?,
                (anyElement | text)*
                }

locator = element * {
                attribute xlink:type {"locator"}, foreign.att*,
                href.att, role.att?, title.att?, label.att?,
                (title | anyElement | text)*
                }

arc = element * {
                attribute xlink:type {"arc"}, foreign.att*,
                arcrole.att?, title.att?, from.att?, to.att?,
                show.att?, actuate.att?,
                (title | anyElement | text)*
                }

xlink-simple.rnc:

namespace xlink = "http://www.w3.org/1999/xlink"

start = anyElement
anyElement = simple | foreignElement
foreignElement = element * - xlink:* { foreign.att*, (anyElement | text)* }

simple.type = attribute xlink:type {"simple"}
href.att = attribute xlink:href {xsd:anyURI}
role.att = attribute xlink:role {xsd:anyURI}
arcrole.att = attribute xlink:arcrole {xsd:anyURI}
title.att = attribute xlink:title {text}
show.att = attribute xlink:show {"new"|"replace"|"embed"|"other"|"none"}
actuate.att = attribute xlink:actuate {"onLoad"|"onRequest"|"other"|"none"}
foreign.att = attribute * - xlink:*  {text}

simple = element * {
                (simple.type | href.att | (simple.type, href.att)),
                foreign.att*, role.att?, arcrole.att?, title.att?,
                show.att?, actuate.att?,
                (anyElement | text)*
                }

> Everyone, why are we not including a DTD?

What is Appendix B, chopped liver?

That said, I think we should remove the word "sample" from Apps C and D.
The DTD validates one possible set of conventions for using XLink;
the XML Schema (I think) and the RNG (for sure) validate any XLink-using
document.

-- 
Unless it was by accident that I had            John Cowan
offended someone, I never apologized.           cowan@ccil.org
        --Quentin Crisp                         http://www.ccil.org/~cowan

Received on Saturday, 18 July 2009 19:42:26 UTC