- From: Priscilla Walmsley <pwalmsley@datypic.com>
- Date: Mon, 15 Jan 2007 08:27:42 -0500
- To: <public-xsd-databinding-comments@w3.org>
- Message-ID: <01aa01c738a8$f030f530$6501a8c0@WALMSLEYPH>
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