Leaving aside the issue of XML schema (W3C style) vs. other schema languages
(RELAX NG) ... the issue is, with the current draft schema, it is possible
to have a record where the authority and variant (and/or related) are of
different types, for example a title authority with a variant which is a
name, which wouldn't make sense but would validate. The suggestion is to
restructure the schema so that it will enforce the rule that the authority,
variants, and relateds are all the same type. (Actually the suggestion was
to use another language that can enforce this, but it's easy enough to do
with XML schema.)

I'm informed however, we really can't enforce this because there are
actually records where the types are different.   Rebecca showed me an
example of a name authority with a geographic reference. ("Clinton, Bill,
1946-" with a reference from "United States".  Rebecca can elaborate if
necessary.)  If we were to successfully enumerate the cases where this could
happen (doubtful) and try to force validation, the schema complexity would
be out-of-control, don't you think?  So perhaps leaving this unvalidated is


----- Original Message -----
From: "Bruce D'Arcus" <[log in to unmask]>
To: <[log in to unmask]>
Sent: Friday, December 17, 2004 7:18 PM
Subject: Re: [MODS] RELAX NG vs. XML Schema, and alternative MADS suggestion

> As I told Ray off-list, the new version works for me.  Great; thanks
> Ray!
> However, I would like to return to basic structural questions though,
> because now that I have a working pre-release, it confirms my belief
> that the current design is simply wrong.
> If you'll recall, I posted a simple example -- written in RELAX NG and
> cleanly converted to XML Schema -- that resulted in instances like
> this:
> <mads xmlns="">
>    <person>
>      <name>
>        <authority>
>          <givenname>John</givenname>
>          <familyname>Doe</familyname>
>        </authority>
>        <variant type="alternate">
>          <givenname>Jonathan</givenname>
>          <familyname>Doe</familyname>
>        </variant>
>      </name>
>    </person>
> </mads>
> The key points are that all content are children of the main elements
> (person, work, topic, etc.), that authority and variant are siblings.
> Not only does this make logical sense, it also allows one to much more
> finely-control validation.  A person element thus cannot have an
> authorized name that is a corporate name, and an authorized name that
> is a person cannot have a variant that is a corporate name, or -- much
> worse -- a title.
> The below are both valid against the new pre-release, but neither of
> them makes any sense.
> <madsCollection xmlns="">
>    <mads>
>      <authority>
>        <title>Some Title</title>
>      </authority>
>      <variant type="abbreviation">
>        <name type="personal">
>          <namePart type="given">J</namePart>
>          <namePart type="family">Doe</namePart>
>        </name>
>      </variant>
>    </mads>
>    <mads>
>      <authority>
>        <name type="corporate">
>          <namePart type="given">John</namePart>
>          <namePart type="family">Doe</namePart>
>        </name>
>      </authority>
>    </mads>
> </madsCollection>
> I know I'm a bit of a gadfly on this stuff, but I think it's in
> everyone's interest that these schemas be as good as they can be.  I
> get really nervous when I see this sort of stuff (a schema so loose I
> almost wonder why bother to validate at all), and a deepening
> dependence on XML Schema (a language that is far too complex for far
> too little payoff).
> The structure I am suggesting, by contrast, will result in more
> reliable and easier to work with data, make editing easier, etc.  RELAX
> NG, meanwhile, is easier to use (and more powerful) and gives users and
> developers who would like to work with MODS greater flexibility (e.g.
> I'm not forced to use a schema language I have no interest in).
> Finally, I still think an attribute to indicate initialization on
> nameParts could be valuable.
> Bruce