Formal Description comments

1. I found the

  x[t types td]

notation confusing.  In particular, an example such as:

a[
  u types t/@b[xsi:string types "zero"],
  t/@c[s types 1,2],
  u/d[
    u/d/* types u/d/*/a[xsi:string types "three"],
    u/d/*/a[xsi:string types "four"]
    ]
  ] 

naturally reads as:

a[
  (u types t/@b[xsi:string types "zero"]),
  t/@c[s types 1,2],
  u/d[
    u/d/* types u/d/*/a[xsi:string types "three"],
    u/d/*/a[xsi:string types "four"]
    ]
  ] 

rather than as the intended:

a[
  u types (t/@b[xsi:string types "zero"],
  t/@c[s types 1,2],
  u/d[
    u/d/* types u/d/*/a[xsi:string types "three"],
    u/d/*/a[xsi:string types "four"]
    ])
  ] 

I would suggest a notation such as:

a[
  t/@b["zero"] : xsi:string,
  t/@c[1,2] : s,
  u/d[
    u/d/*/a["three"] : xsi:string,
    u/d/*/a["four"] : xsi:string
    ] : u/d/*
  ] : u

would be easier to read and less prone to misunderstanding.

2. The |> symbol has suffered rather in translation to HTML.  In
particular, a judgment such as:

x |- e => y |> a

naturally reads as

(x |- e) => (y |> a)

because the in the HTML the |- and |> symbols look very similar. I would
suggest another less visually dominant symbol instead of |> and perhaps
avoiding the spaces around it, eg

x |- e => y^a

3. In 3.5, it says

(Shortcoming: we make no further use of attributeGroup or modelGroup in
this document.)

This left me wondering. In a content group, can you have a reference to
an attributeGroup or modelGroup.  I assume yes (given than you use the
letter x in the production for group).  If so, that seems to capture the
semantics of attributeGroup or modelGroup, so what exactly is the
shortcoming referred to in section 3.5.

4. How are substitution groups handled?

5. I don't think the formalization should restrict itself to Schema Part
1.  Part 2 also badly needs the same treatment.

6. In general, a group g{1,1} means the same as g. However, this would
mean that

<restriction base="int"/>

and

<list itemType="int">
  <minLength value="1"/>
  <maxLength value="1"/>
</list>

were modelled by equivalent simpleType components.  But as far as I can
tell in Schema Part 2 a list containing just the integer 7 is not the
same value as the integer 7.

7. I would suggest using * instead of *:* for consistency with XPath.

James

Received on Wednesday, 18 April 2001 03:35:30 UTC