Comments on the last call working draft

Hi all,
After rereading the last call working draft, I had a few comments.  They are
below.
Thanks!
Priscilla Walmsley

Overall
- Everywhere it says "document or element node", I think it should just say
"element node".  A document node would never be returned by .//xs:schema;
the xs:schema element would be a child of the document node in the case that
it was the outermost element.
- Everywhere it says "node-set" it should say "sequence".

QualifiedLocalElements
- It might be more illustrative to show an example of a locally declared
element in the schema and have the instance element be prefixed

UnqualifiedLocalAttributes
- It might be more illustrative to show an example of a locally declared
attribute in the schema and have the instance element carry that attribute

ElementFinal
- Only global elements can validly have the @final attribute, so the path
could start with ./xs:element instead of .//xs:element

ImportTypesNamespace
- I don't see how this could represent a valid schema, since the XML Schema
recommendation says, about import, "If the namespace [attribute] is present,
then its .actual value. must not match the .actual value. of the enclosing
<schema>'s targetNamespace [attribute]."

GlobalElement and GlobalAttribute
- The "@name and " is redundant since all global element/attribute
declarations have to have name attributes
- I'm not clear why we're checking whether @type contains a colon? The type
attribute could still contain a name that's in a namespace but not prefixed,
if a default namespace is declared.  Is it because some processors might
handle prefixed names differently from non-prefixed ones?  If this is the
case, shouldn't we have two patterns: GlobalElementPrefixedType and
GlobalElementUnprefixedType?  Same comment on ElementTypeReference
ElementReference, AttributeTypeReference,  and AttributeReference

GlobalElementSequence
- The [@name]  is redundant since all global element declarations have to
have name attributes
- This pattern doesn't rule out types where there is something else besides
elements in the sequence, for example:

<xs:element name="globalElementSequence">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="foo" type="xs:string" />
      <xs:element name="bar" type="xs:string" />
      <xs:choice>
        <xs:any/>
        <xs:group ref="xxx"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
</xs:element>

It seems that such a type shouldn't conform to a basic pattern. Maybe it
should be something like:

./xs:element/xs:complexType/xs:sequence[xs:element and not(* except
(xs:element, xs:annotation))]/ 

Or is the idea that it's the foo and bar elements that are the ones that
conform to the pattern?  Same comment for ComplexTypeSequence


ElementMaxOccursFinite
- Could be simplified: .//xs:element[@maxOccurs != ('0','1','unbounded')]


ElementEmptySequence
- The [@name] is redundant because an xs:element without a name could never
have a complexType child
- Instead of not(node()) which would return true even if there was
<sequence> </sequence>, should it be not(*) or not (* except xs:annotation) 

ElementEmptyComplexType
- The [@name] is redundant because an xs:element without a name could never
have a complexType child
- Instead of not(node()) which would return true even if there was
<complexType> </complexType>, should it be not(*) or not (* except
xs:annotation) 

Section title "Global SimpleType Declarations" 
- Technically, according to the Schema rec, types have _definitions_ and
elements/attributes have _declarations_, so this should be changed to
"Global SimpleType Definitions". (May occur in other places too.)

GlobalSimpleType and GlobalComplexType
- [@name] is redundant since top-level complex types always have names

StringEnumerationType
- The path doesn't eliminate simple types that combine xs:enumeration with
other facets. Should it?  I wouldn't think the following type would conform
to the basic pattern:

<xs:simpleType name="Beatle">
  <xs:restriction base="xs:string">
    <xs:enumeration value="John" />
    <xs:enumeration value="Paul" />
    <xs:enumeration value="George" />
    <xs:whiteSpace value="collapse"/>
    <xs:maxLength pattern=".{4,6}"/>
  </xs:restriction>
</xs:simpleType>

Received on Monday, 15 January 2007 13:34:39 UTC