Ahhh...
So, there is a difference between what is the default delimiter in the RNG 
vs in the XSL. 
I thought that I had something wrong in my RNG file because I couldn't get 
the semi-colon to work 
MANY THANKS!

Kate

..........................................................................................................................................................................................................................
 

Kate Wringe | Senior Information Developer | SQL Anywhere Doc Team |
Sybase | 445 Wes Graham Way, Waterloo, ON, N2L 6R2 Canada | Tel: (519) 
883-6838 | kate.wri...@sybase.com | www.sybase.com



"Cramer, David W (David)" <dcra...@motive.com> 
02/03/2011 02:43 PM

To
"kate.wri...@sybase.com" <kate.wri...@sybase.com>
cc
"b...@sagehill.net" <b...@sagehill.net>, "docbook@lists.oasis-open.org" 
<docbook@lists.oasis-open.org>, "rob.cavicc...@emc.com" 
<rob.cavicc...@emc.com>
Subject
RE: [docbook] More than one value for an attribute.






Yes, that?s what Bob was getting at. You?ll need to set the DocBook xsl 
parameter profile.separator to be a space  (<xsl:param 
name=?profile.separator? select=?? ??/>) since apparently the rng <list> 
pattern only allows for a space as the delimiter. Therefore, your vendor 
value tokens cannot contain spaces (So ?WindowsXP? is fine but ?Windows 
XP? isn?t). Make sense?
 
David
 
From: kate.wri...@sybase.com [mailto:kate.wri...@sybase.com] 
Sent: Thursday, February 03, 2011 1:14 PM
To: Cramer, David W (David)
Cc: b...@sagehill.net; docbook@lists.oasis-open.org; rob.cavicc...@emc.com
Subject: RE: [docbook] More than one value for an attribute.
 

The syntax that David provided works great -- Thank you! 

I have a further question regarding the delimiter. What is the default 
delimiter for attributes? In reading 
http://www.sagehill.net/docbookxsl/ProfilingWithRole.html, I think 
that the delimiter is supposed to be a semi-colon. However, the only 
delimiter that seems to work in my XML is a space. Where is the delimiter 
set in the RNG schema? 

This is the error that I keep getting when I try to set multiple attribute 
values: <sidebar vendor="Blackberry;Kate;Linux"> 
E [Jing] value of attribute "vendor" is invalid; token 
"Blackberry;Kate;Linux" invalid; must be equal to "Blackberry", "Kate", 
"Linux", "Mac" or "iOS" 

Thanks again, 
Kate 

..........................................................................................................................................................................................................................
 

Kate Wringe | Senior Information Developer | SQL Anywhere Doc Team |
Sybase | 445 Wes Graham Way, Waterloo, ON, N2L 6R2 Canada | Tel: (519) 
883-6838 | kate.wri...@sybase.com | www.sybase.com 


"Cramer, David W (David)" <dcra...@motive.com> 
02/03/2011 12:57 PM 


To
"kate.wri...@sybase.com" <kate.wri...@sybase.com> 
cc
"b...@sagehill.net" <b...@sagehill.net>, "docbook@lists.oasis-open.org" 
<docbook@lists.oasis-open.org>, "rob.cavicc...@emc.com" 
<rob.cavicc...@emc.com> 
Subject
RE: [docbook] More than one value for an attribute.
 








Someone offlist pointed out a syntax error in my example. You?ll also need 
a <choice> in there to make it work. And indeed, as Bob points out, if you 
use space as a delimiter, none of your values can have spaces: 
  
                                <define name="db.vendor.attribute"> 
                                                <attribute name="vendor"> 
 <a:documentation>Indicates?</a:documentation> 
                                                                <list> 
      <oneOrMore> 
                      <choice> 
                                      <value>Windows</value> 
                                      <value>Linux</value> 
                                      <value>Mac</value> 
                                      <value>iOS</value> 
                                      <value>Blackberry</value> 
                      </choice> 
      </oneOrMore>  
                                                                </list> 
                                                </attribute> 
                                </define> 
  
David 
  
From: Cramer, David W (David) [mailto:dcra...@motive.com] 
Sent: Thursday, February 03, 2011 10:55 AM
To: kate.wri...@sybase.com
Cc: b...@sagehill.net; docbook@lists.oasis-open.org; rob.cavicc...@emc.com
Subject: RE: [docbook] More than one value for an attribute. 
  
Hi Kate, 
I know that RelaxNG has a ?list? pattern: 
http://www.relaxng.org/tutorial-20011203.html#IDAK0YR 
  
What I don?t know is if you can specify the delimiter. Maybe a RelaxNG 
expert out there can help us. 
  
I believe you can set the profiling delimiter in the xslts, so you could 
set that to space and then do something like the following: 
  
<define name="db.vendor.attribute"> 
  <attribute name="vendor"> 
  <a:documentation>Indicates?</a:documentation> 
   <list> 
   <oneOrMore> 
       <value type="token">Windows</value> 
       <value type="token">Linux</value> 
       <value type="token">Mac</value> 
       <value type="token">iOS</value> 
       <value type="token">Blackberry</value> 
   </oneOrMore> 
 </list> 
   </attribute> 
 </define> 
  
That takes care of the validation side, but I don?t know if your editor 
(Oxygen I assume) will automatically help the user add valid values. 
  
David 
  
  
From: kate.wri...@sybase.com [mailto:kate.wri...@sybase.com] 
Sent: Thursday, February 03, 2011 9:58 AM
To: Cramer, David W (David)
Cc: b...@sagehill.net; docbook@lists.oasis-open.org; rob.cavicc...@emc.com
Subject: RE: [docbook] More than one value for an attribute. 
  

Thank you to all who responded to my query. 

David's example with xrefstyle is close to what I want to be able to do. I 
define the vendor attribute as follows 

<define name="db.vendor.attribute"> 
 <attribute name="vendor"> 
 <a:documentation>Indicates the level of user experience for which the 
element applies</a:documentation> 
  <choice> 
      <value type="token">Windows</value> 
      <value type="token">Linux</value> 
      <value type="token">Mac</value> 
      <value type="token">iOS</value> 
      <value type="token">Blackberry</value> 
</choice> 
  </attribute> 
</define> 

Then in my XML file, I set the vendor attribute to two values (separating 
them with a semi-colon) 
<section xmlns="http://docbook.org/ns/docbook"; version="5.0" 
xml:id="da-dboptions" remap="concept" vendor="Blackberry;Mac"> 

But, I keep getting the following error in my authoring tool (I'm using 
oXygen) 

SystemID: C:\src\db\pubs\dbAdmin\da-dboptions2.xml 
Engine name: Jing 
Severity: error 
Description: value of attribute "vendor" is invalid; must be equal to 
"Windows", "Linux", "Mac", "iOs" or "Blackberry" 
Start location: 13:23 
End location: 13:34

Is there something that I need to set in the RNG file so that it knows 
that the vendor attribute can have more than one value? 

Thanks, 
Kate 

..........................................................................................................................................................................................................................
 

Kate Wringe | Senior Information Developer | SQL Anywhere Doc Team |
Sybase | 445 Wes Graham Way, Waterloo, ON, N2L 6R2 Canada | Tel: (519) 
883-6838 | kate.wri...@sybase.com | www.sybase.com 

"Cramer, David W (David)" <dcra...@motive.com> 
02/02/2011 11:06 AM 
 


To
"rob.cavicc...@emc.com" <rob.cavicc...@emc.com>, "b...@sagehill.net" 
<b...@sagehill.net>, "docbook@lists.oasis-open.org" 
<docbook@lists.oasis-open.org>, "kate.wri...@sybase.com" 
<kate.wri...@sybase.com> 
cc

Subject
RE: [docbook] More than one value for an attribute.

 
 








Ah, perfect for my case and so simple. All I have to do (using RelaxNG and 
Oxygen) is: 
 
                               <define name="db.xrefstyle.attribute"> 
                                               <attribute 
name="xrefstyle"> 
 <a:documentation>Specifies a keyword or keywords identifying additional 
style information</a:documentation> 
                                                               <choice> 
     <value type="token">select: nopage</value> 
     <value type="token">select: label nopage</value> 
     <value type="token">select: linktext</value> 
     <text/> 
                                                               </choice> 
                                               </attribute> 
                               </define> 
 
Not sure about Kate?s case :-) 
 
Thanks, 
David 
 
From: rob.cavicc...@emc.com [mailto:rob.cavicc...@emc.com] 
Sent: Wednesday, February 02, 2011 9:17 AM
To: Cramer, David W (David); b...@sagehill.net; 
docbook@lists.oasis-open.org; kate.wri...@sybase.com
Subject: RE: [docbook] More than one value for an attribute. 
 
As you say, I think it is editor customization, and that depends on the 
editor. 
 
In Arbortext Editor, you can get what amounts to a combobox, with free 
form text entry in addition to a list of common choices. You do this by 
defining an attribute value space to be the union of an enumeration (list 
of specific items) and a text pattern that defines exactly what you can 
type. For example: 
 
           <xs:simpleType name="vendor"> 
                       <xs:union> 
                                   <!-- TYPICAL VALUES TO CHOOSE FROM --> 
                                   <xs:simpleType> 
                                               <xs:restriction 
base="xs:string"> 
                                                           <xs:enumeration 
value="linux" /> 
                                                           <xs:enumeration 
value="mac" /> 
                                                           <xs:enumeration 
value="windows" /> 
                                               </xs:restriction> 
                                   </xs:simpleType> 
                                   <!-- STRING PATTERN IF TYPED MANUALLY 
--> 
                                   <xs:simpleType> 
                                               <xs:restriction 
base="xs:string"> 
                                                           <xs:pattern 
value="(linux|mac|windows)((;(linux|mac|windows))*)?" /> 
                                               </xs:restriction> 
                                   </xs:simpleType> 
                       </xs:union> 
           </xs:simpleType> 
 
I don't know if other editors would handle this in a similar way. 
 
 
 
From: Cramer, David W (David) [mailto:dcra...@motive.com] 
Sent: Wednesday, February 02, 2011 4:58 AM
To: Bob Stayton; docbook@lists.oasis-open.org; kate.wri...@sybase.com
Subject: RE: [docbook] More than one value for an attribute. 
 
As soon as I hit send, I woke up a little and realized that what you 
really want is a dialog box in the editor (launched by a button or 
whatever) that lets the writer click one or more checkboxes for each 
value, then when they click ok, it turns the selected values into a comma 
delimited list as the attribute value. For my xrefstyle case, I?d use 
radio buttons instead of check boxes. The user is still free to edit the 
attribute value manually.  You could also customize the xslts to check the 
list of values to make sure nothing unsupported was entered. 
 
David 
 
From: Cramer, David W (David) [mailto:dcra...@motive.com] 
Sent: Wednesday, February 02, 2011 6:43 AM
To: Bob Stayton; docbook@lists.oasis-open.org; kate.wri...@sybase.com
Subject: RE: [docbook] More than one value for an attribute. 
 
Hi Kate, 
As Bob says, the DocBook xsl?s profiling mechanism supports this, but I 
take your question to be about the authoring side of the problem. What you 
really want to know is if there?s a way to help the writer avoid doing 
something like vendor=?Windows XP, Linix? (where ?Linix? is misspelled and 
so won?t have the desired effect). That seems to me a matter of editor 
customization. In fact, this is on my list of things to look into wrt the 
xrefstyle attribute. In that case, I would like to offer the writer a list 
of typical choices but still leave them free to enter arbitrary text so I 
don? t have to enumerate every possibility in the schema. I haven?t 
figured out what to do yet, so please let me know if you come up with a 
situation. You might also ask your editor?s support folks to see if they 
have suggestions. 
 
David 
 
From: Bob Stayton [mailto:b...@sagehill.net] 
Sent: Tuesday, February 01, 2011 6:02 PM
To: docbook@lists.oasis-open.org; kate.wri...@sybase.com
Subject: Re: [docbook] More than one value for an attribute. 
 
Yes, you can do this.  See the third bullet item in this reference: 
 
http://www.sagehill.net/docbookxsl/MultiProfile.html 
 
Bob Stayton
Sagehill Enterprises
b...@sagehill.net 
 
 
----- Original Message ----- 
From: kate.wri...@sybase.com 
To: docbook@lists.oasis-open.org 
Sent: Tuesday, February 01, 2011 3:43 PM 
Subject: [docbook] More than one value for an attribute. 
 

Hello, 

Is there a way to define an attribute so that the writer can select more 
than one choice for its value (i.e., can an attribute be set to a 
delimited list of values)? 

For example: vendor= "Windows XP, Windows 2008, Linux, Unix, Mac, iOS". 

It seems that when attributes are discussed, that there is an assumption 
that the writer only wants to pick one value for the attribute. For 
example, when setting 
the vendor attribute, the writer only needs to choose between Windows or 
Linux. However, we need to be able to specify more than value for the 
vendor attribute. 
For example some of our content applies to Windows only, some of the 
content applies to Windows and Linux, some of the content applies to iOs 
and Mac Os, some of the content 
applies to Windows, Linux, and Mac Os, etc., As we support more operating 
systems, the number of vendor combinations increases. We need to be able 
to append the new OS to the 
vendor attribute. We don't want to have a set of different combinations to 
choose from as this would be cumbersome to work with. 

Any thoughts or suggestions would be greatly appreciated. 

Thank you,
Kate 


..........................................................................................................................................................................................................................
 

Kate Wringe | Senior Information Developer | SQL Anywhere Doc Team |
Sybase | 445 Wes Graham Way, Waterloo, ON, N2L 6R2 Canada | Tel: (519) 
883-6838 | kate.wri...@sybase.com | www.sybase.com 

Reply via email to