Re: Can symbol contain width and height attributes?

Jiri Klement:
> My interpretation is the same as yours for this example. But lets have
> width and height in symbol:
>
> ...
> <symbol id="x" viewBox="-30 20 110 700" width="200" height="220"
> preserveAspectRatio="none"
> fill="blue" ...>
>
> ...
> </symbol>
>
> ...
> <use xlink:href="#x" x="100" y="140" fill="red" .../>
>
> Specification says 'use' is replaced by deep copy of 'symbol' with
> 'symbol' replaced by 'svg'. If you copy 'symbol' attributes as well,
> then the result is exactly the same as if width and height was in
> 'use' instead of 'symbol'
>
> <g transform="translate(100,140)"  fill="red" ...>
>
> <svg id="x" viewBox="-30 20 110 700" preserveAspectRatio="none"
> width="200" height="220" fill="blue" ...>
>
> ...
> </svg>
>
> </g>
>

No, because width or height are not part of the DTD for symbol, the
error processing of SVG1.1 notes to render the document up to the
error and to give some indication, therefore the referenced symbol
will never be rendered.

The currently fictive SVG1.2 error processing style (derived from
existing SVGT1.2, not having a symbol) might be simply to ignore width 
and height for symbol, therefore for the 'replacement svg' we will get
for both the value 100%. But obviously this is currently only 
speculative, what might happen in a future version, or such attributes
might be really added. Currently we have symbol in SVG1.1 and the 
error processing rules are in such a way, that the symbol will never
be rendered, therefore nothing is copied at all in the 'replacement
svg', no defined attributes and no others. This will typically ensure,
that the author will already remove the wrong attributes from the
symbol to get the document rendered, therefore in published documents
the problem should never occur (according to the error processing
philosophy of SVG1.1 ;o)

Received on Thursday, 14 August 2008 09:03:04 UTC