Difference between revisions of "OpenDocument SVG Correspondence"

From Inkscape Wiki
Jump to navigation Jump to search
(* Circle)
(* 9.8 ellipse)
Line 48: Line 48:
  
 
For converting between OpenDocument's start-angle,end-angle format to SVG's endpoint representation, see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes, principally sections [http://www.w3.org/TR/SVG11/implnote.html#ArcConversionCenterToEndpoint F.6.4] and [http://www.w3.org/TR/SVG11/implnote.html#ArcConversionEndpointToCenter F.6.5].
 
For converting between OpenDocument's start-angle,end-angle format to SVG's endpoint representation, see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes, principally sections [http://www.w3.org/TR/SVG11/implnote.html#ArcConversionCenterToEndpoint F.6.4] and [http://www.w3.org/TR/SVG11/implnote.html#ArcConversionEndpointToCenter F.6.5].
 +
 +
==== 9.8 Ellipse ====
 +
 +
draw:ellipse element: Can use svg:ellipse if draw:kind="full"; the more general case is as for draw:circle (see above) except for its svg:rx and svg:ry attributes instead of svg:r.
 +
 +
OpenDocument allows svg:rx and svg:ry to be inferred from position & size attributes, whereas the rx and ry attributes of svg:ellipse are required.
 +
 +
(The OpenDocument spec has a typo saying svg:rx twice instead of "svg:rx and svg:ry".)
  
 
==== 9.2.15 Common Drawing Shape Attributes ====
 
==== 9.2.15 Common Drawing Shape Attributes ====

Revision as of 02:05, 1 February 2005

Section 9.2 (pp275-) of the OpenDocument specification (available at http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office) is the most obviously related to SVG.

9.2 Drawing Shapes

9.2.1 Rectangle

draw:rect element: svg:rect (http://www.w3.org/TR/SVG11/shapes.html#RectElement)

draw:corner-radius attribute: rx. (OpenDocument has no equivalent of specifying both rx and ry, so we may forbid specifying ry in OpenDocument SVG fragments.)

9.2.2 Line

draw:line element: svg:line (http://www.w3.org/TR/SVG11/shapes.html#LineElement)

9.2.3 Polyline

draw:polyline element: svg:polyline (http://www.w3.org/TR/SVG11/shapes.html#PolylineElement)

svg:points attribute: points. The OpenDocument specification is (at first glance at least) ambiguous as to whether coordinates can contain units, whereas the SVG spec disallows units.

9.2.4 Polygon

draw:polygon element: svg:polygon

9.2.5 Regular Polygon

draw:regular-polygon element: svg:path supplemented by draw:blah attributes used as hints to editing programs (similar to the star tool in inkscape).

(Note that svg:polygon doesn't in general suffice, because of the draw:sharpness attribute.)

Consider hinting only what cannot be inferred from the path data, to reduce problems from conflicts between the path data and hints.

9.2.6 Path

draw:path element: svg:path.

svg:d attribute: d. (Though note the OpenDocument comment "Some implementations may only supports a subset of the SVG path specification, for instance no mixtures of open and closed curves for one shape, or no elliptical arc command.")

9.2.7 Circle

draw:circle element: can use svg:circle if draw:kind="full"; all kinds can be represented with svg:path. (http://www.w3.org/TR/SVG11/paths.html#PathDataEllipticalArcCommands for the curved part).

Note that in OpenDocument, its svg:cx and svg:cy attributes may be inferred from the position & size attributes (see section 9.2.15 below), whereas in SVG 1.1 cx and cy each default to 0 if unspecified.

In OpenDocument, absence of svg:r attribute means that the radius is to be calculated from the size attribute[*1], whereas SVG 1.1 requires an r attribute.

[*1]: The specification actually says calculated from both size and position attributes, though I think position is irrelevant, whereas I'd guess that the svg:start-angle and svg:end-angle attributes are relevant. The OpenDocument specification gives no further information about how to calculate radius.

For converting between OpenDocument's start-angle,end-angle format to SVG's endpoint representation, see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes, principally sections F.6.4 and F.6.5.

9.8 Ellipse

draw:ellipse element: Can use svg:ellipse if draw:kind="full"; the more general case is as for draw:circle (see above) except for its svg:rx and svg:ry attributes instead of svg:r.

OpenDocument allows svg:rx and svg:ry to be inferred from position & size attributes, whereas the rx and ry attributes of svg:ellipse are required.

(The OpenDocument spec has a typo saying svg:rx twice instead of "svg:rx and svg:ry".)

9.2.15 Common Drawing Shape Attributes

Name

The OpenDocument specification doesn't mention the interpretation or use of its draw:name attribute. Probably it's a human-readable name used only in dialog boxes of editors for OpenDocument documents. If so, then it can stay as draw:name, and can safely be ignored by most SVG user agents.

Position

The OpenDocument standard allows specifying svg:x and svg:y attributes (though in some cases doesn't mention their interpretation; probably ignored); whereas the SVG 1.1 spec allows x and y attributes on only a few elements (typically those that don't otherwise specify their position).

Size

The OpenDocument standard allows specifying a svg:width and/or svg:height attribute for many shapes, typically saying that these attributes "may" be ignored. The SVG 1.1 standard does not allow specifying width or height attributes other than for rect, image, foreignObject, and a few other things (see http://www.w3.org/TR/SVG11/attindex.html).

Unfinished: Transformation onwards