- From: Priscilla Walmsley <pwalmsley@datypic.com>
- Date: Tue, 11 Feb 2003 08:25:03 -0500
- To: <www-voice@w3.org>
- Cc: <w3c-xml-schema-ig@w3.org>
Dear Colleagues: The XML Schema WG congratulates the Voice Browser WG on the publication of the Last Call working draft of SSML version 1.0 of 02 December, 2002. We apologize profusely for missing the deadline for comments. We have now reviewed the document and listed some comments and suggestions below. Only the first of these do we consider significant; the rest are suggestions based on our experience with schema design. We congratulate you on your work and hope our comments are helpful. Please get back to us if you have any questions or if further discussion seems likely to be helpful. -Priscilla Walmsley on behalf of the XML Schema WG 1. Significant Issue There is a subtle error in the schema. Because the speak.class group contains elements that have anonymous types, it cannot be used in a restriction as it is in synthesis.xsd. This is because a particle containing an anonymous type will never be considered a valid restriction of another particle with an anonymous type (even if they reuse the same type definition from a named model group). This can be remedied by giving the metadata and lexicon elements named types, as in: <xsd:group name="speak.class"> <xsd:sequence> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="metadata" type="metadata"/> <xsd:element name="lexicon" type="lexicon"/> <xsd:group ref="sentenceAndStructure.class"/> </xsd:choice> </xsd:sequence> </xsd:group> <xsd:complexType name="metadata"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:any namespace="##other" processContents="lax"/> </xsd:choice> <xsd:anyAttribute namespace="##any" processContents="strict"/> </xsd:complexType> <xsd:complexType name="lexicon"> <xsd:attribute name="uri" type="xsd:anyURI" use="required"/> <xsd:attribute name="type" type="xsd:string"/> </xsd:complexType> 2. Suggestions a. The prose says "The metadata and lexicon elements must occur before all other elements and text contained within the root speak element" but this is not enforced in the schema. The schema cannot enforce that the metadata and lexicon children must appear before any text, but it can enforce that they must appear before other children, by changing speak.class as in: <xsd:group name="speak.class"> <xsd:sequence> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="metadata" type="metadata"/> <xsd:element name="lexicon" type="lexicon"/> </xsd:choice> <xsd:group ref="sentenceAndStructure.class" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group> b. Since the name attribute of the mark element is declared to be of type ID, it may be useful to point out in the prose that this means that it must be unique within the containing document and must conform to the lexical rules for an NCName. c. Since the name attribute of the voice element is really a whitespace-separated list of names, it may be better to give a type that represents a list of names, as in <xs:simpleType name='voiceName'> <xs:restriction base='xs:token'> <xs:pattern value='\S+'/> </xs:restriction> </xs:simpleType> <xs:simpleType name='listOfVoiceName'> <xs:list itemType='voiceName'/> </xs:simpleType> d. Most of the simple types in this schema that are derived from string would be more easily used if they were derived from token. This would allow leading and trailing whitespace to be collapsed. e. The type "number" was defined as a restriction of string. It seems more natural to us that it should be defined as a restriction of decimal, as in: <xsd:simpleType name="number"> <xsd:annotation> <xsd:documentation> number: e.g. 10, 5.5, 1.5,9., .45 </xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:decimal"> <xsd:minInclusive="0"/> </xsd:restriction> </xsd:simpleType> 3. Minor problems with the examples a. The example under "Pitch contour" in section 2.2.4 has the values +20 and +10 which appear to be invalid according to both the schema and the prose in the recommendation. b. The examples starting in section 3.3 are all missing the required version attribute of the speak element c. The second and third examples in Appendix A are missing an end quote on the encoding in the xml declaration
Received on Tuesday, 11 February 2003 08:25:19 UTC