-
Type: New Feature
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: ODF-Next
-
Component/s: None
-
Labels:None
-
Proposal:Hide
Add to Table 4 "XML Namespaces used by the OpenDocument schema" the row
W3Csvg | SVG as defined in [SVG] or in a W3C Recommendation successor to it | http://www.w3.org/2000/svg
??? <W3Csvg:svg> ToDo: Decide about chapter. Can be in "10.4 Frames" similar to <office:binary-data> or in "14 Common Content" similar to <math:math>
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.generated content:
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>
generated content:
The <draw:image> element has the following child elements: <office:binary-data> 10.4.5, <text:list> 5.3.1, <text> 5.1.3 and <W3Csvg:svg> ???.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.--- 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>
ShowAdd to Table 4 "XML Namespaces used by the OpenDocument schema" the row W3Csvg | SVG as defined in [SVG] or in a W3C Recommendation successor to it | http://www.w3.org/2000/svg ??? <W3Csvg:svg> ToDo: Decide about chapter. Can be in "10.4 Frames" similar to <office:binary-data> or in "14 Common Content" similar to <math:math> 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. generated content: 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> generated content: The <draw:image> element has the following child elements: <office:binary-data> 10.4.5, <text:list> 5.3.1, <text > 5.1.3 and <W3Csvg:svg> ??? . 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. --- 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>
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> 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.
- Relax_19Nov20.diff
- 7 kB
- Regina Henschel