RE: Use of Substitution Groups

Html:block would be namens:personName, and my:box would be
namens:personNameWithMiddle.  

I'm trying to use the same example styles that are in the versioning-xml
doc, hence the name selection.  

I agree the distributed nature is key for our concerns and is a central
aspect from version pov.  What I meant by "heart of it" is scoped to the
design style or template that uses an abstract element, non-abstract
elements, and substitution groups.  

This appears to me to be broken from a distributed aspect.  I fail to
see how the "new" type can be used as if it was the "old" type with just
an instance document.  Whether it's a new schema with a substitution
group or a new schema with an xsd:extension or a new schema with a new
type that respecifies and extends the old, there's still a new schema
that has to be communicated to the processor that doesn't know about the
new type.

Cheers,
Dave

> -----Original Message-----
> From: Dan Connolly [mailto:connolly@w3.org] 
> Sent: Monday, April 23, 2007 1:11 PM
> To: David Orchard
> Cc: www-tag@w3.org
> Subject: Re: Use of Substitution Groups
> 
> On Mon, 2007-04-23 at 12:56 -0700, David Orchard wrote:
> > Henry, Dan, etc.,
> > 
> > Is this the scenario that you are talking about?
> > 
> > personName and personNameWithMiddle are of 2 different 
> types that are 
> > in the substitution group for AbstractPersonName.  It's more 
> > interesting when the personNameWithMiddle is in a different 
> schema doc 
> > and namespace, but this is the heart of it.
> 
> Well, to my mind, the distributed nature of the use case is 
> the heart of it. The schema syntax is a detail that I have 
> trouble focusing on.
> 
> Which of AbstractPersonName and such corresponds to my:box 
> and html:block in the example I gave?
> 
> [[
> I'm interested in a form of extensibility where a markup 
> language designer can make a new my:box element and say "it's 
> an HTML block element"; then, when a document containing a 
> my:block element is checked for syntactic happiness, the 
> checking tool uses normal HTML schemas until it gets to 
> my:box; then it looks up my:box in the web, finds that it's 
> declared to be an HTML block, and find than an HTML block is 
> allowed here, and carries on happily.
> ]]
> -- 
> http://lists.w3.org/Archives/Public/public-xml-versioning/2007
> Feb/0000.html
> 
> > <?xml version="1.0" encoding="UTF-8"?> <xs:schema 
> > xmlns:xs="http://www.w3.org/2001/XMLSchema"
> >       targetNamespace="http://www.example.org/name/1" 
> >       xmlns:namens="http://www.example.org/name/1">
> > 
> >  <xs:element name="AbstractPersonName" abstract="true"/>  
> <xs:element 
> > name="personName" type="namens:nameType"
> > substitutionGroup="namens:AbstractPersonName"/>
> >   
> >  <xs:complexType name="nameType">
> > 	 <xs:sequence minOccurs="0" maxOccurs="unbounded">
> > 		 <xs:choice>
> > 			 <xs:element ref="namens:given" /> 
> > 			 <xs:element ref="namens:family" /> 
> > 		  </xs:choice>
> > 	  </xs:sequence>
> > 	  <xs:anyAttribute namespace="##any" processContents="strict" />
> > 
> >   </xs:complexType>
> >   
> >   <xs:element name="given" type="xs:string"/>
> >   <xs:element name="family" type="xs:string"/>
> >   
> >  <xs:complexType name="nameWithMiddleType">
> > 	 <xs:sequence minOccurs="0" maxOccurs="unbounded">
> > 		 <xs:choice>
> > 		   <xs:element ref="namens:given" /> 
> > 		   <xs:element ref="namens:family" /> 
> > 		   <xs:element ref="namens:middle" minOccurs="0"/>
> > 		 </xs:choice>
> > 	 </xs:sequence>
> >      <xs:anyAttribute namespace="##any" processContents="strict" /> 
> >   </xs:complexType>
> >   
> >   <xs:element name="middle" type="xs:string"/>
> >   <xs:element name="personNameWithMiddle"
> > type="namens:nameWithMiddleType"
> > substitutionGroup="namens:AbstractPersonName"/>
> >   
> > </xs:schema>
> > 
> > Cheers,
> > Dave
> --
> Dan Connolly, W3C http://www.w3.org/People/Connolly/
> D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E
> 
> 

Received on Monday, 23 April 2007 20:24:17 UTC