OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (OFFICE-3995) Allow native SVG instead of <office:binary-data> for images


     [ https://issues.oasis-open.org/browse/OFFICE-3995?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Regina Henschel updated OFFICE-3995:
------------------------------------
    Proposal: 
{color:#4c9aff}Add to Table 4 "XML Namespaces used by the OpenDocument schema" the row{color}

W3Csvg | SVG as defined in [SVG] or in a W3C Recommendation successor to it | [http://www.w3.org/2000/svg]

Â

{color:#4c9aff}???{color} <W3Csvg:svg> {color:#4c9aff}_ToDo: Decide about chapter. Can be in "10.4 Frames" similar to <office:binary-data> or in "14 Common Content" similar to <math:math>_{color}

An {{<W3Csvg:svg>}} element is a Conforming XML-Compatible SVG Markup Fragment as described in section 2.4.3 in [https://www.w3.org/TR/2016/CR-SVG2-20160915/conform.html]
 In the context of an OpenDocument document the {{<W3Csvg:svg>}} element should have the default xmlns attribute {{xmlns="http://www.w3.org/2000/svg"}}.
 If a {{<W3Csvg:svg>}} element is present, an {{xlink:href}} attribute in its parent element shall be ignored.

{color:#4c9aff}generated content:{color}

The {{<W3Csvg:svg>}} element is usable within the following elements: {{<draw:fill-image>}} 16.42.6, {{<draw:image>}} 10.4.4, {{<style:background-image>}} 17.3 and {{<text:list-level-style-image>}} 16.35.

Â

16.42.6 {{<draw:fill-image>}}
 The {{<draw:fill-image>}} element specifies either a link to an image resource or contains an image in either a {{<office:binary-data>}} or a {{<W3Csvg:svg>}} child element. Producers shall neither write the {{<office:binary-data>}} nor the {{<W3Csvg:svg>}} child element if the document is represented as a package.

Â

10.4.4 {{<draw:image>}}
 {color:#4c9aff}generated content:{color}
The {{<draw:image>}} element has the following child elements: {{<office:binary-data>}} 10.4.5, {{<text:list>}} 5.3.1, {{<text:p>}} 5.1.3 and {{<W3Csvg:svg>}} {color:#4c9aff}???{color}.

Â

17.3 {{<style:background-image>}}
 The {{<style:background-image>}} element specifies an image as a background. It specifies either a link to an image resource or contains an image in either a {{<office:binary-data>}} or a {{<W3Csvg:svg>}} child element. Producers shall neither write the {{<office:binary-data>}} nor the {{<W3Csvg:svg>}} child element in case the document is represented as a package.

Â

16.35 {{<text:list-level-style-image>}}
 A {{<text:list-level-style-image>}} specifies a list style where list items are preceded by images. This element can only be contained in list style elements. It specifies either a link to an image resource or contains an image in either a {{<office:binary-data>}} or a {{<W3Csvg:svg>}} child element. Producers shall neither write the {{<office:binary-data>}} nor the {{<W3Csvg:svg>}} child element in case the document is represented as a package.

Â
{code:xml}
--- OpenDocument-v1.3-schema.rng	2020-11-17 21:06:14.598948800 +0100
+++ OpenDocument-v1.3-schema_with_svg_proposal.rng	2020-11-19 13:56:58.573137900 +0100
@@ -11,13 +11,13 @@
         Open Document Format for Office Applications (OpenDocument) Version 1.3
         Relax-NG Schema
         OpenDocument-v1.3-schema.rng
 -->
 <!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
 
-<rng:grammar xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:db="urn:oasis:names:tc:opendocument:xmlns:database:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:grddl="http://www.w3.org/2003/g/data-view#"; xmlns:math="http://www.w3.org/1998/Math/MathML"; xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0"; xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:xforms="http://www.w3.org/2002/xforms"; xmlns:xhtml="http://www.w3.org/1999/xhtml"; xmlns:xlink="http://www.w3.org/1999/xlink"; datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes";>
+<rng:grammar xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:db="urn:oasis:names:tc:opendocument:xmlns:database:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/"; xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:grddl="http://www.w3.org/2003/g/data-view#"; xmlns:math="http://www.w3.org/1998/Math/MathML"; xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0"; xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:W3Csvg="http://www.w3.org/2000/svg"; xmlns:xforms="http://www.w3.org/2002/xforms"; xmlns:xhtml="http://www.w3.org/1999/xhtml"; xmlns:xlink="http://www.w3.org/1999/xlink"; datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes";>
   <rng:start>
     <rng:choice>
       <rng:ref name="office-document"/>
       <rng:ref name="office-document-content"/>
       <rng:ref name="office-document-styles"/>
       <rng:ref name="office-document-meta"/>
@@ -4973,12 +4973,13 @@
       <rng:choice>
         <rng:group>
           <rng:ref name="common-draw-data-attlist"/>
           <rng:empty/>
         </rng:group>
         <rng:ref name="office-binary-data"/>
+        <rng:ref name="W3Csvg-svg"/>
       </rng:choice>
       <!-- https://issues.oasis-open.org/browse/OFFICE-3933 -->
     </rng:element>
   </rng:define>
   <rng:define name="draw-fill-image-attlist">
     <rng:interleave>
@@ -5290,12 +5291,13 @@
   <rng:define name="draw-image">
     <rng:element name="draw:image">
       <rng:ref name="draw-image-attlist"/>
       <rng:choice>
         <rng:ref name="common-draw-data-attlist"/>
         <rng:ref name="office-binary-data"/>
+        <rng:ref name="W3Csvg-svg"/>
       </rng:choice>
       <rng:ref name="draw-text"/>
     </rng:element>
   </rng:define>
   <rng:define name="draw-image-attlist">
     <rng:interleave>
@@ -9620,12 +9622,13 @@
     <rng:optional>
       <rng:element name="style:background-image">
         <rng:ref name="style-background-image-attlist"/>
         <rng:choice>
           <rng:ref name="common-draw-data-attlist"/>
           <rng:ref name="office-binary-data"/>
+          <rng:ref name="W3Csvg-svg"/>
           <rng:empty/>
         </rng:choice>
       </rng:element>
     </rng:optional>
   </rng:define>
   <rng:define name="style-background-image-attlist">
@@ -13819,12 +13822,27 @@
   </rng:define>
   <rng:define name="svg-title">
     <rng:element name="svg:title">
       <rng:text/>
     </rng:element>
   </rng:define>
+  <rng:define name="svgMarkup">
+    <dc:description>To avoid inclusion of complete SVG schemas and make successors of SVG 1.0 possible, anything is allowed in the schema within a W3Csvg:svg top-level element. Restrictions are contained in the specification text.</dc:description>
+    <rng:zeroOrMore>
+      <rng:choice>
+        <rng:attribute>
+          <rng:anyName/>
+        </rng:attribute>
+        <rng:text/>
+        <rng:element>
+          <rng:anyName/>
+          <rng:ref name="svgMarkup"/>
+        </rng:element>
+      </rng:choice>
+    </rng:zeroOrMore>
+  </rng:define>
   <rng:define name="tab-cycles">
     <rng:choice>
       <rng:value>records</rng:value>
       <rng:value>current</rng:value>
       <rng:value>page</rng:value>
     </rng:choice>
@@ -17339,12 +17357,13 @@
     </rng:interleave>
   </rng:define>
   <rng:define name="text-list-level-style-image-attr">
     <rng:choice>
       <rng:ref name="common-draw-data-attlist"/>
       <rng:ref name="office-binary-data"/>
+      <rng:ref name="W3Csvg-svg"/>
     </rng:choice>
   </rng:define>
   <rng:define name="text-list-level-style-number-attr">
     <rng:interleave>
       <rng:optional>
         <rng:attribute name="text:style-name">
@@ -18265,12 +18284,17 @@
     <rng:choice>
       <rng:value>top</rng:value>
       <rng:value>center</rng:value>
       <rng:value>bottom</rng:value>
     </rng:choice>
   </rng:define>
+  <rng:define name="W3Csvg-svg">
+    <rng:element name="W3Csvg:svg">
+      <rng:ref name="svgMarkup"/>
+    </rng:element>
+  </rng:define>
   <rng:define name="xforms-bind-attlist">
     <rng:optional>
       <rng:attribute name="xforms:bind">
         <rng:ref name="string"/>
       </rng:attribute>
     </rng:optional>
{code}
Â

  was:
{color:#4c9aff}Add to Table 4 "XML Namespaces used by the OpenDocument schema" the row{color}

W3Csvg | SVG as defined in [SVG] or in a W3C Recommendation successor to it | [http://www.w3.org/2000/svg]

Â

{color:#4c9aff}???{color} <W3Csvg:svg> {color:#4c9aff}_ToDo: Decide about chapter. Can be in "10.4 Frames" similar to <office:binary-data> or in "14 Common Content" similar to <math:math>_{color}

An {{<W3Csvg:svg>}} element is a Conforming XML-Compatible SVG Markup Fragment as described in section 2.4.3 in [https://www.w3.org/TR/2016/CR-SVG2-20160915/conform.html]
 In the context of an OpenDocument document the {{<W3Csvg:svg>}} element should have the default xmlns attribute {{xmlns="http://www.w3.org/2000/svg"}}.
 If a {{<W3Csvg:svg>}} element is present, an {{xlink:href}} attribute in its parent element shall be ignored.

{color:#4c9aff}generated content:{color}

The {{<W3Csvg:svg>}} element is usable within the following elements: {{<draw:fill-image>}} 16.42.6, {{<draw:image>}} 10.4.4, {{<style:background-image>}} 17.3 and {{<text:list-level-style-image>}} 16.35.

Â

16.42.6 {{<draw:fill-image>}}
 The {{<draw:fill-image>}} element specifies either a link to an image resource or contains an image in either a {{<office:binary-data>}} or a {{<W3Csvg:svg>}} child element. Producers shall neither write the {{<office:binary-data>}} nor the {{<W3Csvg:svg>}} child element if the document is represented as a package.

Â

10.4.4 {{<draw:image>}}
 {color:#4c9aff}Add before "Note"{color}
 The {{<draw:image>}} element shall have at most one of {{<office:binary-data>}} element and {{<W3Csvg:svg>}} element.

Â

17.3 {{<style:background-image>}}
 The {{<style:background-image>}} element specifies an image as a background. It specifies either a link to an image resource or contains an image in either a {{<office:binary-data>}} or a {{<W3Csvg:svg>}} child element. Producers shall neither write the {{<office:binary-data>}} nor the {{<W3Csvg:svg>}} child element in case the document is represented as a package.

Â

16.35 {{<text:list-level-style-image>}}
 A {{<text:list-level-style-image>}} specifies a list style where list items are preceded by images. This element can only be contained in list style elements. It specifies either a link to an image resource or contains an image in either a {{<office:binary-data>}} or a {{<W3Csvg:svg>}} child element. Producers shall neither write the {{<office:binary-data>}} nor the {{<W3Csvg:svg>}} child element in case the document is represented as a package.

Â
{code:xml}
--- OpenDocument-v1.3-schema.rng	2020-11-17 21:06:14.598948800 +0100
+++ OpenDocument-v1.3-schema_with_svg_proposal.rng	2020-11-17 22:31:15.314225800 +0100
@@ -4973,12 +4973,13 @@
       <rng:choice>
         <rng:group>
           <rng:ref name="common-draw-data-attlist"/>
           <rng:empty/>
         </rng:group>
         <rng:ref name="office-binary-data"/>
+        <rng:ref name="W3Csvg-svg"/>
       </rng:choice>
       <!-- https://issues.oasis-open.org/browse/OFFICE-3933 -->
     </rng:element>
   </rng:define>
   <rng:define name="draw-fill-image-attlist">
     <rng:interleave>
@@ -5290,12 +5291,13 @@
   <rng:define name="draw-image">
     <rng:element name="draw:image">
       <rng:ref name="draw-image-attlist"/>
       <rng:choice>
         <rng:ref name="common-draw-data-attlist"/>
         <rng:ref name="office-binary-data"/>
+        <rng:ref name="W3Csvg-svg"/>
       </rng:choice>
       <rng:ref name="draw-text"/>
     </rng:element>
   </rng:define>
   <rng:define name="draw-image-attlist">
     <rng:interleave>
@@ -9620,12 +9622,13 @@
     <rng:optional>
       <rng:element name="style:background-image">
         <rng:ref name="style-background-image-attlist"/>
         <rng:choice>
           <rng:ref name="common-draw-data-attlist"/>
           <rng:ref name="office-binary-data"/>
+          <rng:ref name="W3Csvg-svg"/>
           <rng:empty/>
         </rng:choice>
       </rng:element>
     </rng:optional>
   </rng:define>
   <rng:define name="style-background-image-attlist">
@@ -13819,12 +13822,27 @@
   </rng:define>
   <rng:define name="svg-title">
     <rng:element name="svg:title">
       <rng:text/>
     </rng:element>
   </rng:define>
+  <rng:define name="svgMarkup">
+    <dc:description>To avoid inclusion of complete SVG schemas and make successors of SVG 1.0 possible, anything is allowed in the schema within a W3Csvg:svg top-level element. Restrictions are contained in the specification text.</dc:description>
+    <rng:zeroOrMore>
+      <rng:choice>
+        <rng:attribute>
+          <rng:anyName/>
+        </rng:attribute>
+        <rng:text/>
+        <rng:element>
+          <rng:anyName/>
+          <rng:ref name="svgMarkup"/>
+        </rng:element>
+      </rng:choice>
+    </rng:zeroOrMore>
+  </rng:define>
   <rng:define name="tab-cycles">
     <rng:choice>
       <rng:value>records</rng:value>
       <rng:value>current</rng:value>
       <rng:value>page</rng:value>
     </rng:choice>
@@ -17339,12 +17357,13 @@
     </rng:interleave>
   </rng:define>
   <rng:define name="text-list-level-style-image-attr">
     <rng:choice>
       <rng:ref name="common-draw-data-attlist"/>
       <rng:ref name="office-binary-data"/>
+      <rng:ref name="W3Csvg-svg"/>
     </rng:choice>
   </rng:define>
   <rng:define name="text-list-level-style-number-attr">
     <rng:interleave>
       <rng:optional>
         <rng:attribute name="text:style-name">
@@ -18265,12 +18284,17 @@
     <rng:choice>
       <rng:value>top</rng:value>
       <rng:value>center</rng:value>
       <rng:value>bottom</rng:value>
     </rng:choice>
   </rng:define>
+  <rng:define name="W3Csvg-svg">
+    <rng:element name="W3Csvg:svg">
+      <rng:ref name="svgMarkup"/>
+    </rng:element>
+  </rng:define>
   <rng:define name="xforms-bind-attlist">
     <rng:optional>
       <rng:attribute name="xforms:bind">
         <rng:ref name="string"/>
       </rng:attribute>
     </rng:optional>
{code}
Â


> Allow native SVG instead of <office:binary-data> for images
> -----------------------------------------------------------
>
>                 Key: OFFICE-3995
>                 URL: https://issues.oasis-open.org/browse/OFFICE-3995
>             Project: OASIS Open Document Format for Office Applications (OpenDocument) TC
>          Issue Type: New Feature
>            Reporter: Regina Henschel
>            Priority: Major
>             Fix For: ODF 1.4
>
>
> Currently applications need to use the <office:binary-data> element to store an embedded SVG-image, in case they will save to a single XML file (flat ODF). That means that the SVG-image has to be encoded to BASE64. But an SVG-image is an XML-document and therefore it would be possible to use it directly, similar as done with MathML objects. The proposal has the changes that allow use of native SVG for images where now <office:binary-data> is needed.
> Remarks to the proposal:
> The namespace attribute in element <svg:svg> is needed, because OpenDocument producer bind the prefix "svg" to the namespace "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0".
> The referenced document is a Candidate Recommendation. In case it will be released until the release of ODF 1.4, the URL has to be adapted.
> I'm not sure, whether the restriction "at most one" is correctly described by the schema.
> My proposal is not, to use <svg:svg> instead of the <draw:image>, because then the useful attributes draw:mime-type and draw:filter-name, and using <text:p> element for e.g. a caption would not be possible. And the proposal is not about adding an <svg:svg> element as drawing object on same level as e.g. <draw:rect>.
> Defining svg-svg follows the way it is done for math-math.
> I'm not sure, whether to force xlink in case of package format. That needs discussion.



--
This message was sent by Atlassian Jira
(v8.3.3#803004)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]