[oXygen-user] Trouble validating SVG document
Radu Coravu
Fri Oct 15 04:03:26 CDT 2010
Hi Tim,
W3C describes the content of a <svg> document in a schema-independent way.
From what I know there are also XML Schemas which can be used to
validate SVG files.
Indeed the usual way to validate a SVG file is by using the DTDs but DTD
as a grammar specification is not namespace aware and understands
constructs like "xmlns:x" as usual attributes.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
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|:
>
> <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>
>
> "
>
> So the W3C is recommending something that is invalid?
>
>
>
> 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
>
>
More information about the oXygen-user
mailing list