- From: <noah_mendelsohn@us.ibm.com>
- Date: Wed, 29 Jul 2009 16:03:34 -0400
- To: "Costello, Roger L." <costello@mitre.org>
- Cc: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
On Slide 27, you say: "With XML Schema 1.0 you could not restrict a type defined in another schema. In XML Schema 1.1 you can by adding a targetNamespace attribute to each element and attribute in the restriction" I think it would be more accurate to say:] "A XSD 1.0 Schema Document with one targetNamespace could not restrict a type using elements from another targetNamespace. In XML Schema 1.1, you can do this, by adding a targetNamespace attribute to each such "foreign" element and attribute in the restriction" Reasons for the corrections: * Neither XSD 1.0 nor XSD 1.1 speak directly about restrictions across "schemas". * Schema documents are the standard way of setting down schema information, but not the only possible way (APIs might be another.) As far as I know, there's nothing in XSD 1.0 that would prevent such cross-targetNamespace restriction using representations other than Schema Documents. The issue is: schema documents (I.e. the standard XML form for writing down a schema) lacked the capability. XSD 1.1 allows it. * You only need to supply the targetNamespace if the elements happen to be foreign (foreign is not a formal term, but I hope it's clear for purposes of this note. Although it wouldn't come up in the simplest cases, one can imagine a case in which some of the elements were in fact from the targetNamespace of the schema document, and for those no targetNamespace would be needed. Actually, looking at your example, I think it lacks important prefix definitions. I think this would be clearer. This defines a type lib:BookInLibrary based on books:Book: <xs:schema targetNamespace="http://www.libraries.org" xmlns:books="Book.xsd"> <xs:import namespace="http://www.book.org" schemaLocation="Book.xsd"/> <xs:complexType name="BookInLibrary"> <xs:complexContent> <xs:restriction base="books:Book"> <xs:sequence> <xs:element name="Title" type="xs:string" targetNamespace="http://www.book.org"/> <xs:element name="Author" type="xs:string" maxOccurs="2" targetNamespace="http://www.book.org"/> <xs:element name="Date" type="xs:gYear" targetNamespace="http://www.book.org"/> <xs:element name="ISBN" type="xs:string" targetNamespace="http://www.book.org"/> <xs:element name="Publisher" type="xs:string" targetNamespace="http://www.book.org"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema> -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 -------------------------------------- "Costello, Roger L." <costello@mitre.org> Sent by: xmlschema-dev-request@w3.org 07/24/2009 02:16 PM To: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org> cc: (bcc: Noah Mendelsohn/Cambridge/IBM) Subject: [Updated] XML Schema 1.1 Tutorial Hi Folks, I updated my XML Schema 1.1 Tutorial: http://www.xfront.com/xml-schema-1-1/xml-schema-1-1.ppt Here are the changes: 1. At the beginning I added a "5 minute intro" section that quickly covers all of the new capabilities in XML Schema 1.1 2. I completely revised the section on targetNamespace (thanks to Michael Kay and Michael Sperberg-McQueen for straightening me out) 3. I added a few more slides on xs:error Thanks to Noah and Mukul for their suggestions. I will be announcing the tutorial on xml-dev shortly. /Roger
Received on Wednesday, 29 July 2009 20:04:20 UTC