- From: mozer <xmlizer@gmail.com>
- Date: Thu, 13 Nov 2008 19:25:52 +0100
- To: "Norman Walsh" <ndw@nwalsh.com>
- Cc: "XProc Dev" <xproc-dev@w3.org>
Instead of non-namespace may I proposed to use
"http://www.exproc.org/ns/config" which seem neutral to me at least
Xmlizer
On Tue, Nov 11, 2008 at 2:09 PM, Norman Walsh <ndw@nwalsh.com> wrote:
> "James Fuller" <james.fuller.2007@gmail.com> writes:
>> so now all we have to do is figure out who does the schema... nudge
>> nudge, hint ;)
>
> Heh. Here's a first stab. I'm thinking of implementing this with the
> following semantics:
>
> 1. It's a configuration file if the local-name of the root element is
> "xproc-config". This way, users can choose an
> implementation-appropriate default namespace if they want, but my
> implementation will still look inside it.
>
> 2. My implementation will attempt to process any element in either
> no-namespace or my namespace. If several implementations agree on the
> name of a particular configuration property, then we can share the
> same definition if it's in no-namespace. If it's in a namespace, but
> not in my namespace, I just ignore it.
>
> Here's a first pass at the schema:
>
> default namespace local = ""
> namespace cc = "http://com.xmlcalabash/ns/configuration"
>
> xmlid.attr = attribute xml:id { xsd:ID }
> xmlbase.attr = attribute xml:base { xsd:anyURI }
>
> common.attributes = xmlid.attr?, xmlbase.attr?, extension.attr*
>
> # ============================================================
>
> start = XProcConfiguration
>
> # ============================================================
>
> XProcConfiguration =
> element xproc-config {
> common.attributes,
> (NotCC|CCConfig)*
> }
>
> NotCC =
> element (* - cc:*) {
> (_any.attr | text | Any)*
> }
>
> CCConfig =
> CCSchema | CCBinding | CCDebug | CCEntityResolver
> | CCInput | CCLogLevel | CCLibrary | CCOutput | CCWithParam
> | CCSafe | SSStepName | CCURIResolver | CCImplementation
>
> CCSchema =
> element cc:schema-aware {
> common.attributes,
> xsd:boolean
> }
>
> CCBinding =
> element cc:namespace-binding {
> common.attributes,
> attribute prefix { text },
> attribute uri { xsd:anyURI },
> empty
> }
>
> CCDebug =
> element cc:debug {
> common.attributes,
> xsd:boolean
> }
>
> CCEntityResolver =
> element cc:entity-resolver {
> common.attributes,
> attribute class-name { xsd:NMTOKEN },
> empty
> }
>
> CCInput =
> element cc:input {
> common.attributes,
> attribute port { xsd:NMTOKEN },
> attribute href { xsd:anyURI }?,
> Any?
> }
>
> CCLogLevel =
> element cc:log-level {
> common.attributes,
> attribute logger { xsd:NMTOKEN }?,
> attribute level {
> "finest" | "finer" | "fine" | "info"
> | "warning" | "error" | "severe"
> },
> empty
> }
>
> CCLibrary =
> element cc:library {
> common.attributes,
> attribute href { xsd:anyURI }?,
> Any?
> }
>
> CCOutput =
> element cc:output {
> common.attributes,
> attribute port { xsd:NMTOKEN },
> attribute href { xsd:anyURI },
> empty
> }
>
> CCWithParam =
> element cc:with-param {
> common.attributes,
> attribute name { xsd:QName },
> attribute value { text }?
> }
>
> CCSafe =
> element cc:safe-mode {
> common.attributes,
> xsd:boolean
> }
>
> SSStepName =
> element cc:step-name {
> common.attributes,
> xsd:NMTOKEN
> }
>
> CCURIResolver =
> element cc:uri-resolver {
> common.attributes,
> attribute class-name { xsd:NMTOKEN },
> empty
> }
>
> CCImplementation =
> element cc:implementation {
> common.attributes,
> attribute step-name { xsd:QName },
> attribute class-name { xsd:NMTOKEN },
> empty
> }
>
> # ============================================================
>
> _any.attr =
> attribute * { text }
>
> extension.attr =
> attribute (* - (local:*|xml:*)) { text }
>
> Any =
> element * {
> (_any.attr | text | Any)*
> }
>
>
> Be seeing you,
> norm
>
> --
> Norman Walsh <ndw@nwalsh.com> | No man's knowledge here can go beyond
> http://nwalsh.com/ | his experience.--John Locke
>
Received on Thursday, 13 November 2008 18:26:28 UTC