Uploaded image for project: 'OASIS Open Document Format for Office Applications (OpenDocument) TC'
  1. OASIS Open Document Format for Office Applications (OpenDocument) TC
  2. OFFICE-3765

[spreadsheet] Proposal: <number:fill-character> element for data styles

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: ODF 1.3
    • Labels:
      None
    • Environment:

      This is an enhancement, described in terms of changes to OpenDocument-v1.2

    • Proposal:
      Hide

      Updated 30 April 2018 to reflect proposal up for TC approval:

      Regina Henschel's proposal for the text (changed does not to shall not in the second sentence)

      In section
      16.27 Data Styles
      http://docs.oasis-open.org/office/v1.2/cs01/OpenDocument-v1.2-cs01-part1.html#__RefHeading__1416346_253892949
      add:

      New element:

      <number:fill-character>

      The content of this element specifies a Unicode character that is displayed repeatedly at the position where the element occurs. The character specified is repeated as many times as possible, but the total resulting string shall not exceed the given cell content area.

      Fill characters may not fill all the available space in a cell. The distribution of the remaining space is implementation dependent.

      To chapter "16.27.1 General" add the sentence:

      Data styles shall specify at most one <number:fill-character> element.

      Michael Stahl's schema prooposal:

      --- Downloads/OpenDocument-v1.2-os-schema.rng	2018-04-06 13:21:47.000000000 +0200
      +++ OFFICE-3765.rng-v2	2018-04-26 16:29:04.895877657 +0200
      @@ -12608,20 +12608,20 @@
       	<define name="number-number-style">
       		<element name="number:number-style">
       			<ref name="common-data-style-attlist"/>
       			<optional>
       				<ref name="style-text-properties"/>
       			</optional>
       			<optional>
      -				<ref name="number-text"/>
      +				<ref name="number-text-with-fillchar"/>
       			</optional>
       			<optional>
       				<ref name="any-number"/>
       				<optional>
      -					<ref name="number-text"/>
      +					<ref name="number-text-with-fillchar"/>
       				</optional>
       			</optional>
       			<zeroOrMore>
       				<ref name="style-map"/>
       			</zeroOrMore>
       		</element>
       	</define>
      @@ -12712,15 +12712,15 @@
       		<element name="number:currency-style">
       			<ref name="common-data-style-attlist"/>
       			<ref name="common-auto-reorder-attlist"/>
       			<optional>
       				<ref name="style-text-properties"/>
       			</optional>
       			<optional>
      -				<ref name="number-text"/>
      +				<ref name="number-text-with-fillchar"/>
       			</optional>
       			<optional>
       				<choice>
       					<group>
       						<ref name="number-and-text"/>
       						<optional>
       							<ref name="currency-symbol-and-text"/>
      @@ -12738,21 +12738,21 @@
       				<ref name="style-map"/>
       			</zeroOrMore>
       		</element>
       	</define>
       	<define name="currency-symbol-and-text">
       		<ref name="number-currency-symbol"/>
       		<optional>
      -			<ref name="number-text"/>
      +			<ref name="number-text-with-fillchar"/>
       		</optional>
       	</define>
       	<define name="number-and-text">
       		<ref name="number-number"/>
       		<optional>
      -			<ref name="number-text"/>
      +			<ref name="number-text-with-fillchar"/>
       		</optional>
       	</define>
       	<define name="number-currency-symbol">
       		<element name="number:currency-symbol">
       			<ref name="number-currency-symbol-attlist"/>
       			<text/>
       		</element>
      @@ -12782,15 +12782,15 @@
       	<define name="number-percentage-style">
       		<element name="number:percentage-style">
       			<ref name="common-data-style-attlist"/>
       			<optional>
       				<ref name="style-text-properties"/>
       			</optional>
       			<optional>
      -				<ref name="number-text"/>
      +				<ref name="number-text-with-fillchar"/>
       			</optional>
       			<optional>
       				<ref name="number-and-text"/>
       			</optional>
       			<zeroOrMore>
       				<ref name="style-map"/>
       			</zeroOrMore>
      @@ -12801,20 +12801,20 @@
       			<ref name="common-data-style-attlist"/>
       			<ref name="common-auto-reorder-attlist"/>
       			<ref name="common-format-source-attlist"/>
       			<optional>
       				<ref name="style-text-properties"/>
       			</optional>
       			<optional>
      -				<ref name="number-text"/>
      +				<ref name="number-text-with-fillchar"/>
       			</optional>
       			<oneOrMore>
       				<ref name="any-date"/>
       				<optional>
      -					<ref name="number-text"/>
      +					<ref name="number-text-with-fillchar"/>
       				</optional>
       			</oneOrMore>
       			<zeroOrMore>
       				<ref name="style-map"/>
       			</zeroOrMore>
       		</element>
       	</define>
      @@ -12958,20 +12958,20 @@
       			<ref name="number-time-style-attlist"/>
       			<ref name="common-data-style-attlist"/>
       			<ref name="common-format-source-attlist"/>
       			<optional>
       				<ref name="style-text-properties"/>
       			</optional>
       			<optional>
      -				<ref name="number-text"/>
      +				<ref name="number-text-with-fillchar"/>
       			</optional>
       			<oneOrMore>
       				<ref name="any-time"/>
       				<optional>
      -					<ref name="number-text"/>
      +					<ref name="number-text-with-fillchar"/>
       				</optional>
       			</oneOrMore>
       			<zeroOrMore>
       				<ref name="style-map"/>
       			</zeroOrMore>
       		</element>
       	</define>
      @@ -13078,27 +13078,43 @@
       	<define name="number-text-style">
       		<element name="number:text-style">
       			<ref name="common-data-style-attlist"/>
       			<optional>
       				<ref name="style-text-properties"/>
       			</optional>
       			<optional>
      -				<ref name="number-text"/>
      +				<ref name="number-text-with-fillchar"/>
       			</optional>
       			<zeroOrMore>
       				<ref name="number-text-content"/>
       				<optional>
      -					<ref name="number-text"/>
      +					<ref name="number-text-with-fillchar"/>
       				</optional>
       			</zeroOrMore>
       			<zeroOrMore>
       				<ref name="style-map"/>
       			</zeroOrMore>
       		</element>
       	</define>
      +	<define name="number-text-with-fillchar">
      +		<optional>
      +			<ref name="number-text"/>
      +		</optional>
      +		<optional>
      +			<ref name="number-fill-character"/>
      +			<optional>
      +				<ref name="number-text"/>
      +			</optional>
      +		</optional>
      +	</define>
      +	<define name="number-fill-character">
      +		<element name="number:fill-character">
      +			<text/>
      +		</element>
      +	</define>
       	<define name="number-text">
       		<element name="number:text">
       			<text/>
       		</element>
       	</define>
       	<define name="number-text-content">
       		<element name="number:text-content">
      
      

       

      Show
      Updated 30 April 2018 to reflect proposal up for TC approval: Regina Henschel's proposal for the text (changed does not to shall not in the second sentence) In section 16.27 Data Styles http://docs.oasis-open.org/office/v1.2/cs01/OpenDocument-v1.2-cs01-part1.html#__RefHeading__1416346_253892949 add: New element: <number:fill-character> The content of this element specifies a Unicode character that is displayed repeatedly at the position where the element occurs. The character specified is repeated as many times as possible, but the total resulting string shall not exceed the given cell content area. Fill characters may not fill all the available space in a cell. The distribution of the remaining space is implementation dependent. To chapter "16.27.1 General" add the sentence: Data styles shall specify at most one <number:fill-character> element. Michael Stahl's schema prooposal: --- Downloads/OpenDocument-v1.2-os-schema.rng 2018-04-06 13:21:47.000000000 +0200 +++ OFFICE-3765.rng-v2 2018-04-26 16:29:04.895877657 +0200 @@ -12608,20 +12608,20 @@ <define name="number-number-style"> <element name="number:number-style"> <ref name="common-data-style-attlist"/> <optional> <ref name="style-text-properties"/> </optional> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> <optional> <ref name="any-number"/> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> </optional> <zeroOrMore> <ref name="style-map"/> </zeroOrMore> </element> </define> @@ -12712,15 +12712,15 @@ <element name="number:currency-style"> <ref name="common-data-style-attlist"/> <ref name="common-auto-reorder-attlist"/> <optional> <ref name="style-text-properties"/> </optional> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> <optional> <choice> <group> <ref name="number-and-text"/> <optional> <ref name="currency-symbol-and-text"/> @@ -12738,21 +12738,21 @@ <ref name="style-map"/> </zeroOrMore> </element> </define> <define name="currency-symbol-and-text"> <ref name="number-currency-symbol"/> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> </define> <define name="number-and-text"> <ref name="number-number"/> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> </define> <define name="number-currency-symbol"> <element name="number:currency-symbol"> <ref name="number-currency-symbol-attlist"/> <text/> </element> @@ -12782,15 +12782,15 @@ <define name="number-percentage-style"> <element name="number:percentage-style"> <ref name="common-data-style-attlist"/> <optional> <ref name="style-text-properties"/> </optional> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> <optional> <ref name="number-and-text"/> </optional> <zeroOrMore> <ref name="style-map"/> </zeroOrMore> @@ -12801,20 +12801,20 @@ <ref name="common-data-style-attlist"/> <ref name="common-auto-reorder-attlist"/> <ref name="common-format-source-attlist"/> <optional> <ref name="style-text-properties"/> </optional> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> <oneOrMore> <ref name="any-date"/> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> </oneOrMore> <zeroOrMore> <ref name="style-map"/> </zeroOrMore> </element> </define> @@ -12958,20 +12958,20 @@ <ref name="number-time-style-attlist"/> <ref name="common-data-style-attlist"/> <ref name="common-format-source-attlist"/> <optional> <ref name="style-text-properties"/> </optional> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> <oneOrMore> <ref name="any-time"/> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> </oneOrMore> <zeroOrMore> <ref name="style-map"/> </zeroOrMore> </element> </define> @@ -13078,27 +13078,43 @@ <define name="number-text-style"> <element name="number:text-style"> <ref name="common-data-style-attlist"/> <optional> <ref name="style-text-properties"/> </optional> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> <zeroOrMore> <ref name="number-text-content"/> <optional> - <ref name="number-text"/> + <ref name="number-text-with-fillchar"/> </optional> </zeroOrMore> <zeroOrMore> <ref name="style-map"/> </zeroOrMore> </element> </define> + <define name="number-text-with-fillchar"> + <optional> + <ref name="number-text"/> + </optional> + <optional> + <ref name="number-fill-character"/> + <optional> + <ref name="number-text"/> + </optional> + </optional> + </define> + <define name="number-fill-character"> + <element name="number:fill-character"> + <text/> + </element> + </define> <define name="number-text"> <element name="number:text"> <text/> </element> </define> <define name="number-text-content"> <element name="number:text-content">  

      Description

      Improve interoperability with other spreadsheet implementations, by enabling round-trip of fill characters (used to fill empty space in cells, not occupied e.g. by the actual cell content)

        Attachments

          Activity

          Hide
          michaelst Michael Stahl [X] (Inactive) added a comment -

          adding a complete schema diff based on the interleave idea in the previous comment to Proposal

          Show
          michaelst Michael Stahl [X] (Inactive) added a comment - adding a complete schema diff based on the interleave idea in the previous comment to Proposal
          Hide
          regina.henschel Regina Henschel added a comment - - edited

          Remark: Differences are not obvious in normal use. To see it, use a very wide fill character, e.g. U+2E3A, a "two-em dash".

          The alignment of the resulting string is not determined by this attribute and it is different between applications. LibreOffice takes the total resulting string and aligns it according left/center/right alignment setting of the cell. In cell alignment setting "justify" it is left aligned. The behavior in Excel is not consistence. Sometimes it acts like LibreOffice, but sometimes it aligns the display string right in all cell alignment cases and aligns the inserted character string part left/center/right in the remaining space.

          The description has to fit to all writing directions. "left" or "right" might not be correct. I think, that the previously suggested wording " at the position where it occurs" is sufficient.

          The schema, which Michael suggested in his mail https://lists.oasis-open.org/archives/office/201804/msg00054.html, looks good to me, but it needs a restriction to one element in the text.

          Therefore my suggestions:
          ===================================
          <number:fill-character>

          The content of this element specifies a Unicode character that is displayed repeatedly at the position where the element occurs. The character specified is repeated as much times as possible, but so that the total resulting string does not exceed the given cell content area.

          The distribution of the remaining space is implementation dependent.


          To chapter "16.27.1 General" add the sentence:

          Data styles shall specify at most one <number:fill-character> element.

          Show
          regina.henschel Regina Henschel added a comment - - edited Remark: Differences are not obvious in normal use. To see it, use a very wide fill character, e.g. U+2E3A, a "two-em dash". The alignment of the resulting string is not determined by this attribute and it is different between applications. LibreOffice takes the total resulting string and aligns it according left/center/right alignment setting of the cell. In cell alignment setting "justify" it is left aligned. The behavior in Excel is not consistence. Sometimes it acts like LibreOffice, but sometimes it aligns the display string right in all cell alignment cases and aligns the inserted character string part left/center/right in the remaining space. The description has to fit to all writing directions. "left" or "right" might not be correct. I think, that the previously suggested wording " at the position where it occurs" is sufficient. The schema, which Michael suggested in his mail https://lists.oasis-open.org/archives/office/201804/msg00054.html , looks good to me, but it needs a restriction to one element in the text. Therefore my suggestions: =================================== <number:fill-character> The content of this element specifies a Unicode character that is displayed repeatedly at the position where the element occurs. The character specified is repeated as much times as possible, but so that the total resulting string does not exceed the given cell content area. The distribution of the remaining space is implementation dependent. — To chapter "16.27.1 General" add the sentence: Data styles shall specify at most one <number:fill-character> element.
          Hide
          michaelst Michael Stahl [X] (Inactive) added a comment -

          updated proposal based on new schema proposal based on Regina's use case of fill-character in the middle of text.

          Show
          michaelst Michael Stahl [X] (Inactive) added a comment - updated proposal based on new schema proposal based on Regina's use case of fill-character in the middle of text.
          Hide
          patrick Patrick Durusau added a comment -

          As per TC on 30 April 2018

          Show
          patrick Patrick Durusau added a comment - As per TC on 30 April 2018
          Hide
          patrick Patrick Durusau added a comment -

          Applied in OpenDocument-v1.3-wd08-part3-documents.odt and OpenDocument-schema-v1.3-wd05.rng

          Show
          patrick Patrick Durusau added a comment - Applied in OpenDocument-v1.3-wd08-part3-documents.odt and OpenDocument-schema-v1.3-wd05.rng

            People

            • Assignee:
              timar Andras Timar (Inactive)
              Reporter:
              tbehrens Thorsten Behrens (Inactive)
            • Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: