RE: How to ensure that at least one of 2 attributes is set to true

Hi Manfred Staudinger;

You can add additional constraints to your instance data by using the constraint[1] attribute on a bind (an invalid instance can't be submitted, so this also solves your store problem).

In your example:
<xf:bind nodeset="im:objektkategorie/im:vermarktungsart/@MIETE_PACHT" type="xs:boolean" constraint="boolean-from-string(.) or boolean-from-string(../@KAUF)" />

Makes the miete_pacht attribute valid if either miete_pacht or kauf is true. To show a warning you can use the alert element on the input that binds to miete_pacht attribute.

In your example:

<xf:input ref="im:objektkategorie/im:vermarktungsart/@KAUF">
  <xf:label>Verkauf: &nbsp;</xf:label>
  <xf:alert>Either verkauf or Vermietung should be checked</xf:alert>
</xf:input>


Regards,

Nick Van den Bleeken
R&D Manager

Phone: +32 3 821 01 70
Office Fax: +32 3 821 01 71
Nick_Van_den_Bleeken@inventivegroup.com
http://www.inventivegroup.com

1: http://www.w3.org/MarkUp/Forms/specs/XForms1.1/index-diff.html#model-prop-constraint


> -----Original Message-----
> From: www-forms-request@w3.org [mailto:www-forms-request@w3.org] On
> Behalf Of Manfred Staudinger
> Sent: zondag 21 juni 2009 22:10
> To: www-forms@w3.org
> Subject: How to ensure that at least one of 2 attributes is set to true
>
> Hi List,
>
> I'm new to XForms, read a lot but still missing something: I did not
> find a solution (other than post-processing with xslt). I want to make
> sure that at least one of the 2 attributes
> (MIETE_PACHT, KAUF) is set to true (1). If this is not the case, I
> would like to get a message or even prevent the document from being
> stored.
> Here is my instance and the bind:
> <xf:model>
>    <xf:instance xmlns="http://www.example.com">
>    <immobilie>
>       <objektkategorie>
>          <vermarktungsart MIETE_PACHT="0" KAUF="0" />
>       </objektkategorie>
>    </immobilie>
>    </xf:instance>
>
>    <xf:bind
> nodeset="im:objektkategorie/im:vermarktungsart/@MIETE_PACHT"
> type="xs:boolean"  />
>    <xf:bind nodeset="im:objektkategorie/im:vermarktungsart/@KAUF"
> type="xs:boolean"  />
>    <xf:submission id="saveDoc" method="put">
>       <xf:resource value="concat('test/fertigobjekt',
> im:verwaltung_techn/ic:objektnr, '.xml')"/>
>    </xf:submission>
> </xf:model>
>
> Input fields are:
> <xf:group>
>    <xf:input ref="im:objektkategorie/im:vermarktungsart/@KAUF">
>       <xf:label>Verkauf: &nbsp;</xf:label>
>    </xf:input>
>    <xf:input ref="im:objektkategorie/im:vermarktungsart/@MIETE_PACHT">
>       <xf:label>Vermietung (Miete, Pacht): &nbsp;</xf:label>
>    </xf:input>
> </xf:group>
>
> Remarks about the example above and pointers to sources are also
> appreciated. Thanks!
>
> Manfred Staudinger
>
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
> --
>


Inventive Designers' Email Disclaimer:
http://www.inventivedesigners.com/email-disclaimer

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
--

Received on Monday, 22 June 2009 09:35:17 UTC