W3C home > Mailing lists > Public > www-forms@w3.org > July 2005

RE: Using and extending XForms-Schema.xsd

From: Mark Birbeck <mark.birbeck@x-port.net>
Date: Wed, 20 Jul 2005 11:41:47 +0100
Message-ID: <0015D4CA-B7BD-40A5-BC46-78FD57EEE775@S009>
To: "'Adrian Baker'" <adrian.r.baker@gmail.com>
Cc: <www-forms@w3.org>


The first thing to say is that from your description you don't sound like
you need to extend the schemas. The appearance attribute can take QNames so
you can add your own values:

  <xforms:group bind="bind-name" appearance="adrian:vertical">
    <xforms:input bind="bind-firstname">
      <xforms:label>First Name</xforms:label>
    <xforms:input bind="bind-lastname">
      <xforms:label>Last Name</xforms:label>

If you are using server-side generated XForms then you can easily spot this
value and do some more specific formatting. And if you are using client-side
generated XForms then in Mozilla you could use CSS rules to add some extra
CSS rules, and in formsPlayer version 2 you can use XBL binding rules to
bind a completely different widget (if you wanted to).

However, although I think it's not relevant for your problem, your question
about schemas still stands as a more general issue. I'm currently working on
trying to get XML Schema to 'play ball' in terms of modularisation for
compound documents (XHTML + XForms + SVG + MathML, etc.). If you are
interested in this area, some comments are on the XForms Wiki at:


If you really need to have schemas that allow you to add the extra features
you describe then I would use the schemas that will come out of this work.
(They are nearly complete!)



Mark Birbeck
x-port.net Ltd.

e: Mark.Birbeck@x-port.net
t: +44 (0) 20 7689 9232
w: http://www.formsPlayer.com/
b: http://internet-apps.blogspot.com/

Download our XForms processor from

> -----Original Message-----
> From: www-forms-request@w3.org 
> [mailto:www-forms-request@w3.org] On Behalf Of Adrian Baker
> Sent: 20 July 2005 00:27
> To: www-forms@w3.org
> Subject: Using and extending XForms-Schema.xsd
> We have a forms application in which our forms are defined 
> using XForms hosted in proprietary xml document (these are 
> then converted via XSLT to XHTML+XForms documents which are 
> passed to the XForms engine).
> I've been trying to integrate our inhouse proprietary form 
> schema (which isn't particularly complex - primarily it's 
> just a platform independent container document for the XForms 
> markup) with the XForms-Schema.xsd defined as part of the 
> spec (http://www.w3.org/MarkUp/Forms/2002/XForms-Schema.xsd).
> One extension we have is that some extra tags are present 
> inside xforms elements, for example a group can have a 
> 'layout' metadata tag (from our own namespace), which affects 
> the XHTML generated from the form definition (because we 
> wanted more precise control than the minimal, compact & full 
> appearance hints)
> <xforms:group bind="bind-name">
>    <layout:vertical-layout/>
>    <xforms:input bind="bind-firstname">
>        <xforms:label>First Name</xforms:label>
>    </xforms:input>
>    <xforms:input bind="bind-lastname">
>        <xforms:label>Last Name</xforms:label>
>    </xforms:input>
> </xforms:group>
> My schema knowledge is fairly basic, but my first instinct 
> here was to look for a way to extend the XForms group type to 
> allow a 'layout' tag to be added. As far as I could tell 
> though, there is no such type declared (in fact there are no 
> complexTypes declared at all), only a top level group element 
> which isn't available for extension:
>    <xsd:element name="group">
>        <xsd:complexType>
>            <xsd:sequence>
>                <xsd:element ref="xforms:label" minOccurs="0"/>
>                <xsd:sequence minOccurs="0" maxOccurs="unbounded">
>                    <xsd:choice>
>                        <xsd:group ref="xforms:UI.Common"/>
>                        <xsd:group ref="xforms:Form.Controls"/>
>                        <xsd:element ref="xforms:group"/>
>                        <xsd:element ref="xforms:switch"/>
>                        <xsd:element ref="xforms:repeat"/>
>                        <!-- containing document language to 
> add additional allowed content here -->
>                    </xsd:choice>
>                </xsd:sequence>
>            </xsd:sequence>
>            <xsd:attributeGroup ref="xforms:Common.Attributes"/>
>            <xsd:attributeGroup 
> ref="xforms:Single.Node.Binding.Attributes"/>
>            <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
>        </xsd:complexType>
>    </xsd:element>
> Note the comment 'containing document language to add 
> additional allowed content here' - precisely what I want to 
> do, but am I expected to actually maintain and edit a local 
> copy of this schema to do this?
> Certainly that's easy enough, especially since I expect the 
> public version will be slow to change, but surely the 
> preferred method would be to extend, rather than directly modify?
> Adrian
Received on Wednesday, 20 July 2005 10:42:36 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:36:15 UTC