Hi Tomaž,

I have attached a "using elements with names" compared to "using a list".
In case of "using a list", referencing a scheme color would be done via index and not via name.

Please tell me, what is your preferred solution.

Kind regards,
Regina

Regina Henschel schrieb am 29.03.2023 um 10:28:
Hi Tomaž,

Tomaž Vajngerl schrieb am 25.03.2023 um 11:10:
Hi Regina,

[..]
OTOH it probably makes sense to rename dk1, lt1, dk2, lt2, hlink, folHlink to the full names dark1, light1, ... , hyperlink, followed-hyperlink - which is inline with ODF style to not to abbreviate things. I planned to do that change but other things have priority currently.

Do we need names at all in the relaxNG schema? The colors could be put as space separated list into one attribute. Such list is ordered too.

Kind regards,
Regina





===========================
= Version with value list =
===========================

Resulting markup example
------------------------
<draw:color-scheme draw:color-scheme-name="Regina"
  draw:scheme-colors="#000000 #ffffff #000011 #ffff01 #100000 #020000 #003000 
#000400 #000050 #000006 #0000ff #3300ff"/>

NN <draw:color-scheme>
----------------------
The <draw:color-scheme> element has a draw:color-scheme-name attribute and a 
draw:scheme-colors attribute.
The draw:color-scheme-name attribute helps consumers to organize color schemes 
in an application.
The draw:scheme-colors attribute is a space separated list of twelve sRGB 
colors in #rrbbgg notation. They are usually used in the meaning dark1, light1, 
dark2, light2, accent1, accent2, accent3, accent4, accent5, accent6, hyperlink, 
followedhyperlink.

The <draw:color-scheme> element is usable with the following element: 
<draw:theme>.
The <draw:color-scheme> element has the following attributes: 
draw:color-scheme-name, draw:scheme-colors
The <draw:color-scheme> element has no child elements.

RelaxNG
------
<rng:define name="draw-color-scheme">
  <rng:element name="draw:color-scheme">
    <rng:attribute name="draw:color-scheme-name">
      <rng:ref name="string"/>
    </rng:attribute>
    <rng:attribute name=”draw:scheme-colors”>
      <rng:list>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
        <rng:ref name="color"/>
      </rng:list>
    </rng:attribute>
    <rng:empty/>
  </rng:element>
</rng:define>


=========================
= Version with elements =
=========================

Resulting markup example
------------------------
<draw:color-scheme draw:color-scheme-name="Regina">
  <draw:scheme-color draw:scheme-color-name="dark1" 
draw:scheme-color-value="#000000"/>
  <draw:scheme-color draw:scheme-color-name="light1" 
draw:scheme-color-value="#ffffff"/>
  <draw:scheme-color draw:scheme-color-name="dark2" 
draw:scheme-color-value="#000011"/>
  <draw:scheme-color draw:scheme-color-name="light2" 
draw:scheme-color-value="#ffff01"/>
  <draw:scheme-color draw:scheme-color-name="accent1" 
draw:scheme-color-value="#100000"/>
  <draw:scheme-color draw:scheme-color-name="accent2" 
draw:scheme-color-value="#020000"/>
  <draw:scheme-color draw:scheme-color-name="accent3" 
draw:scheme-color-value="#003000"/>
  <draw:scheme-color draw:scheme-color-name="accent4" 
draw:scheme-color-value="#000400"/>
  <draw:scheme-color draw:scheme-color-name="accent5" 
draw:scheme-color-value="#000050"/>
  <draw:scheme-color draw:scheme-color-name="accent6" 
draw:scheme-color-value="#000006"/>
  <draw:scheme-color draw:scheme-color-name="hyperlink" 
draw:scheme-color-value="#0000ff"/>
  <draw:scheme-color draw:scheme-color-name="followedHyperlink" 
draw:scheme-color-value="#3300ff"/>
</draw:color-scheme>

NN <draw:color-scheme>
----------------------
The <draw:color-scheme> element has a draw:color-scheme-name attribute and 
twelve <draw:scheme-color> child elements for the colors.
The draw:color-scheme-name attribute helps consumers to organize color schemes 
in an application.
A <draw:scheme-color> element has a draw:scheme-color-name attribute so that 
the color can be uses by reference and a draw:scheme-color-value attribute for 
the color value.

The <draw:color-scheme> element is usable with the following element: 
<draw:theme>.
The <draw:color-scheme> element has the following attribute: 
draw:color-scheme-name.
The <draw:color-scheme> element has the following child element: 
<draw:scheme-color>

RelaxNG
-------
<rng:define name="draw-color-scheme">
  <rng:element name="draw:color-scheme">
    <rng:attribute name="draw:color-scheme-name">
      <rng:ref name="string"/>
    </rng:attribute>
    <rng:ref name="draw-scheme-colors"/>
  </rng:element>
</rng:define>

<rng:define name="draw-scheme-colors">
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>dark1</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>light1</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>dark2</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>light2</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>accent1</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>accent2</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>accent3</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>accent4</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>accent5</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>accent6</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>hyperlink</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
  <rng:element name="draw:scheme-color">
    <rng:attribute name="draw:scheme-color-name">
      <value>followedHyperlink</value>
    </rng:attribute>
    <rng:attribute name="draw:scheme-color-value">
      <rng:ref name="Color"/>
    </rng:attribute>
  </rng:element>
</rng:define>

Reply via email to