- From: Michael Kay <mike@saxonica.com>
- Date: Mon, 20 Mar 2006 13:50:37 -0000
- To: "'andrew welch'" <andrew.j.welch@gmail.com>, <xmlschema-dev@w3.org>
The subject line says it all: >two elements with the same name but different types Sorry: no can do. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: xmlschema-dev-request@w3.org > [mailto:xmlschema-dev-request@w3.org] On Behalf Of andrew welch > Sent: 20 March 2006 11:56 > To: xmlschema-dev@w3.org > Subject: two elements with the same name but different types > > > Hi, > > I'm trying to model the following in a schema: > > <head> > <title>the title<title> > <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> > <meta name="fixed_1" content="variable"/> > <meta name="fixed_2" content="variable"/> > <meta name="fixed_3" content="variable"/> > <meta name="fixed_4" content="fixed_5"/> > </head> > > Here the first <meta> has two fixed value attributes, then the > following three have fixed name attributes (which are all different > fixed values) but any content attributes. The last meta contains two > fixed value attributes, like the first. > > Is this possible to model with XML Schema? Currently I have: > > <xs:element name="head"> > <xs:complexType> > <xs:sequence> > <xs:element ref="title"/> > > <xs:element name="meta"> > <xs:complexType> > <xs:attribute name="http-equiv" type="xs:string" > fixed="Content-Type"/> > <xs:attribute name="content" type="xs:string" > fixed="text/html; charset=utf-8"/> > </xs:complexType> > </xs:element> > > <xs:element name="meta"> > <xs:complexType> > <xs:attribute name="name" type="xs:string" fixed="fixed_1"/> > <xs:attribute name="content" type="xs:string"/> > </xs:complexType> > </xs:element> > > <xs:element name="meta"> > <xs:complexType> > <xs:attribute name="name" type="xs:string" fixed="fixed_2"/> > <xs:attribute name="content" type="xs:string"/> > </xs:complexType> > </xs:element> > > .... > <xs:element name="meta"> > <xs:complexType> > <xs:attribute name="name" type="xs:string" fixed="fixed_4"/> > <xs:attribute name="content" type="xs:string" > fixed="fixed_5"/> > </xs:complexType> > </xs:element> > > I read that this is ok as long as the element definitions are local > and not global, but I still get the error: > > "two elements with the same name <meta> but different types appear in > the content model" > > The other problem is defining when "fixed_4" is the value for the name > attribute, "fixed_5" must be the value for the content attribute. > Isn't this a co-occurrence constraint? In which case it's not > possible to do this in XML Schema...? > > I'm writing this schema within an <xsl:import-schema> element in XSLT > 2.0, so it's not possible to use Relax NG here. This is to validate > the output as it's being generated by the transform... the alternative > is to do the validation as a seperate step in the pipeline, which > might be the only option.... > > thanks > andrew > > >
Received on Monday, 20 March 2006 13:50:58 UTC