[oXygen-user] Trouble validating SVG document

Reaves, Timothy
Fri Oct 15 07:32:30 CDT 2010


Thanks for all the info; I now understand what is going on.



On Fri, Oct 15, 2010 at 7:31 AM, Chris Lilley <> wrote:

> On Friday, October 15, 2010, 11:03:26 AM, Radu wrote:
>
> RC> Hi Tim,
>
> RC> W3C describes the content of a <svg> document in a schema-independent
> way.
> RC>  From what I know there are also XML Schemas which can be used to
> RC> validate SVG files.
>
> Yes.
>
> Going forward, W3C plans to use RelaxNG to define the SVG grammar (and to
> recommend NVDL for portioning out a multi-namespace document such that the
> SVG parts are validated to the SVG RNG).
>
> RC> Indeed the usual way to validate a SVG file is by using the DTDs but
> DTD
> RC> as a grammar specification is not namespace aware and understands
> RC> constructs like "xmlns:x" as usual attributes.
>
> Yes.
>
> It should not, but DTDs predate namespaces and are not aware of namespace
> declarations.
>
> RC> Radu Coravu
> RC> <oXygen/>  XML Editor, Schema Editor and XSLT Editor/Debugger
> RC> http://www.oxygenxml.com
>
> RC> On 10/14/2010 6:00 PM, Reaves, Timothy wrote:
> >> I'm confused then.  From
> http://www.w3.org/TR/SVG/struct.html#SVGElement
> >> they reference to follow what is outlined
> >> http://www.w3.org/TR/2006/REC-xml-names-20060816/#ns-decl .
>
> >> "
>
> >> An example namespace declaration, which associates the namespace prefix
> >> *edi* with the namespace name |http://ecommerce.example.org/schema|<http://ecommerce.example.org/schema%7C>
> :
>
> >> <x xmlns:edi='http://ecommerce.example.org/schema'>
> >>    <!-- the"edi"  prefix is bound tohttp://ecommerce.example.org/schema
> >>         for the"x"  element and contents -->
> >> </x>
>
> >> "
>
> Yes, that is fine.
>
> >> So the W3C is recommending something that is invalid?
>
> No. Its only invalid if using a substandard validation mechanism (DTDs).
> Namespace-aware schema languages such as W3C XML Schema or RelaxNG have no
> problem with namespace declarations.
>
> The definition of a conforming SVG fragment is here
> http://www.w3.org/TR/SVG/conform.html#ConformingSVGDocuments
>
> If you want to use extensions in other namespaces and also want the
> instances to be DTD valid, this part of the SVG specification explains how
> to do that
> http://www.w3.org/TR/SVG/extend.html#PrivateElementsAndAttribute
>
> Lastly, if using SVG files generated by Adobe Illustrator, it is wise to
> check the output settings and ensure that the 'round trip' option is not set
> (it includes an entire, base64-encoded PDF file into the SVG) and to ensure
> that any Adobe extensions are
> a) desired
> b) actually used
> Often, namespace declarations will be present but not actually used.
>
> A useful program to take SVG generated by various authoring tools and tidy
> it up is Scour
> http://www.codedread.com/scour/
>
>
>
> >> On Thu, Oct 14, 2010 at 10:56 AM, Radu Coravu <
> >> <mailto:>> wrote:
>
> >>     Hi Tim,
>
> >>     I will assume that the entities like "&ns_ai;" used in the attribute
> >>     values are defined in the DTD declaration used to validate the SVG
> file.
>
> >>     The problem is that SVG files are validated against DTD grammars.
> DTD is
> >>     not namespace aware, it sees namespace binding attributes like
> "xmlns:x"
> >>     like simple attribute names which need to be declared in the DTD in
> >>     order to be recognized.
>
> >>     For example in the DTD used by default by Oxygen to validate DTDs
> the
> >>     <svg> root element is defined as having the following attributes:
>
> >>     <!ATTLIST svg
> >>        xmlns CDATA #FIXED "http://www.w3.org/2000/svg"
> >>        xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
> >>        %stdAttrs;
> >>        %testAttrs;
> >>        %langSpaceAttrs;
> >>        externalResourcesRequired %Boolean; #IMPLIED
> >>        class %ClassList; #IMPLIED
> >>        style %StyleSheet; #IMPLIED
> >>        %PresentationAttributes-All;
> >>        viewBox %ViewBoxSpec; #IMPLIED
> >>        preserveAspectRatio %PreserveAspectRatioSpec; 'xMidYMid meet'
> >>        zoomAndPan (disable | magnify) 'magnify'
> >>        %graphicsElementEvents;
> >>        %documentEvents;
> >>        version %Number; #FIXED "1.0"
> >>        x %Coordinate; #IMPLIED
> >>        y %Coordinate; #IMPLIED
> >>        width %Length; #IMPLIED
> >>        height %Length; #IMPLIED
> >>        contentScriptType %ContentType; "text/ecmascript"
> >>        contentStyleType %ContentType; "text/css" >
>
> >>     So if you do not add an attribute definition for "xmlns:x" in the
> >>     attributes list, the DTD will think the attribute is undefined.
>
> >>     Regards,
> >>     Radu
>
> >>     Radu Coravu
> >>     <oXygen/>  XML Editor, Schema Editor and XSLT Editor/Debugger
> >>     http://www.oxygenxml.com
>
> >>     On 10/14/2010 4:50 PM, Reaves, Timothy wrote:
> >>      > I have an SVG document where the openeing SVG element is:
> >>      > <svg  version="1.0" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;"
> >>      > xmlns:graph="&ns_graphs;" xmlns="&ns_svg;"
> xmlns:xlink="&ns_xlink;"
> >>      >       width="497.611" height="591.554" viewBox="0 0 497.611
> 591.554"
> >>      >       style="overflow:visible;enable-background:new 0 0 497.611
> >>     591.554;"
> >>      > xml:space="preserve">
> >>      >
> >>      >
> >>      > Validation fails on each of the xmlns attributes.  This should be
> >>     valid.
> >>      > The errors look like:
> >>      > SystemID: /home/bv6679/Development/images/HSVG/99571_97YA_17.svg
> >>      > Engine name: Xerces
> >>      > Severity: error
> >>      > Description: Attribute "xmlns:x" must be declared for element
> >>     type "svg".
> >>      > Start location: 29:21
> >>      > End location: 29:42
> >>      >
> >>      > Any ideas?
> >>      > _______________________________________________
> >>      > oXygen-user mailing list
> >>      >  <mailto:>
> >>      > http://www.oxygenxml.com/mailman/listinfo/oxygen-user
>
>
> >>     _______________________________________________
> >>     oXygen-user mailing list
> >>      <mailto:>
> >>     http://www.oxygenxml.com/mailman/listinfo/oxygen-user
>
>
>
>
> RC> _______________________________________________
> RC> oXygen-user mailing list
> RC> 
> RC> http://www.oxygenxml.com/mailman/listinfo/oxygen-user
>
>
>
> --
>  Chris Lilley   Technical Director, Interaction Domain
>  W3C Graphics Activity Lead, Fonts Activity Lead
>  Co-Chair, W3C Hypertext CG
>  Member, CSS, WebFonts, SVG Working Groups
>
>



More information about the oXygen-user mailing list