- From: Alexander J. Vincent <ajvincent@hotmail.com>
- Date: Sun, 27 Aug 2000 13:53:24 PDT
- To: www-svg@w3.org
Dear Sirs,
I realize it is almost certainly too late to suggest new attributes and/or
elements for the SVG language. However, I find myself wanting to add a few
attributes and elements for my own purposes anyway... and unskilled in
figuring out how to do so safely.
I have reviewed the tutorials at zvon.org, particularly the DTD tutorial at
http://www.zvon.org/xxl/DTDTutorial/General/book.html . It's an
exceptionally well-written simple tutorial, but does not cover conditions in
DTDs -- a factor I have to consider.
At the end of this e-mail, I'm including four separate definitions for the
line element in SVG -- the original, a slight amendment including an
endpoints attribute, a version for handling point-slope lines, and a version
for handling slope-intercept lines. (I hope at least that I've expressed
the definitions correctly. SVG is my first exposure to XML.)
I'm keenly interested in learning how to meld these four different
definitions into one, or at least including an internal DTD/XSL stylesheet
to modify the current definition, as mentioned in section 23.5 of the SVG
Candidate Recommendation.
Section 23.5 is somewhat confusing in one aspect -- it mentions "the entity
viewExt" in the text, and then in the following code excerpt, it mentions
"<!ENTITY % extView..." I don't see how these two object names are related
-- is this a typo?
Would you be willing to assist me briefly in putting the pieces together for
a line element definition incorporating the four versions into one? The
experience for me would be invaluable.
Alex Vincent
San Francisco, CA
<!-- original definition of line -->
<!ENTITY % lineExt "" >
<!ELEMENT line
(%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
%geExt;%lineExt;)*) >
<!ATTLIST line
%stdAttrs;
%testAttrs;
%langSpaceAttrs;
externalResourcesRequired %Boolean; #IMPLIED
class %ClassList; #IMPLIED
style %StyleSheet; #IMPLIED
%PresentationAttributes-FillStroke;
%PresentationAttributes-Graphics;
%PresentationAttributes-Markers;
transform %TransformList; #IMPLIED
%graphicsElementEvents;
x1 %Coordinate; #IMPLIED
y1 %Coordinate; #IMPLIED
x2 %Coordinate; #IMPLIED
y2 %Coordinate; #IMPLIED >
<!-- alternate definition one: adding endpoints attribute
endpoints defaults to "both", indicating line segment
pt1 indicates the (x1,y1) point is an endpoint, but the (x2,y2) point is
not: a ray
pt2 indicates the (x2,y2) point is an endpoint, but the (x1,y1) point is
not: a ray
none indicates no endpoints: a geometric line, continuing through the two
points. -->
<!ENTITY % lineExt "" >
<!ELEMENT line
(%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
%geExt;%lineExt;)*) >
<!ATTLIST line
%stdAttrs;
%testAttrs;
%langSpaceAttrs;
externalResourcesRequired %Boolean; #IMPLIED
class %ClassList; #IMPLIED
style %StyleSheet; #IMPLIED
%PresentationAttributes-FillStroke;
%PresentationAttributes-Graphics;
%PresentationAttributes-Markers;
transform %TransformList; #IMPLIED
%graphicsElementEvents;
x1 %Coordinate; #IMPLIED
y1 %Coordinate; #IMPLIED
x2 %Coordinate; #IMPLIED
y2 %Coordinate; #IMPLIED
endpoints (both|pt1|pt2|none) "both" #IMPLIED >
<!-- alternate definition two: point-slope
indicates a geometric line with no endpoints, passing through (x1,y1) and
(x1 + 1, y1 + slope)
y = y0 + slope(x - x0)
y2 = y1 + slope(x2 - x1)
(x1, y1) (x2, y1 + slope(x2 - x1))
x2 = x1 + 1
(x1, y1) (x1 + 1, y1 + slope(x1 + 1 - x1))
(x1, y1) (x1 + 1, y1 + slope(1))
(x1, y1) (x1 + 1, y1 + slope)
-->
<!ENTITY % lineExt "" >
<!ELEMENT line
(%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
%geExt;%lineExt;)*) >
<!ATTLIST line
%stdAttrs;
%testAttrs;
%langSpaceAttrs;
externalResourcesRequired %Boolean; #IMPLIED
class %ClassList; #IMPLIED
style %StyleSheet; #IMPLIED
%PresentationAttributes-FillStroke;
%PresentationAttributes-Graphics;
%PresentationAttributes-Markers;
transform %TransformList; #IMPLIED
%graphicsElementEvents;
x1 %Coordinate; #IMPLIED
y1 %Coordinate; #IMPLIED
slope %Number; #IMPLIED
linetype (point-slope) #REQUIRED >
<!-- alternate definition three: slope-intercept
indicates a geometric line with no endpoints through (0, y-intercept) and
(1, y-intercept + slope) -->
<!ENTITY % lineExt "" >
<!ELEMENT line
(%descTitleMetadata;,(animate|set|animateMotion|animateColor|animateTransform
%geExt;%lineExt;)*) >
<!ATTLIST line
%stdAttrs;
%testAttrs;
%langSpaceAttrs;
externalResourcesRequired %Boolean; #IMPLIED
class %ClassList; #IMPLIED
style %StyleSheet; #IMPLIED
%PresentationAttributes-FillStroke;
%PresentationAttributes-Graphics;
%PresentationAttributes-Markers;
transform %TransformList; #IMPLIED
%graphicsElementEvents;
y-intercept %Coordinate; #IMPLIED
slope %Number; #IMPLIED
linetype (slope-intercept) #REQUIRED >
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
Share information about yourself, create your own public profile at
http://profiles.msn.com.
Received on Sunday, 27 August 2000 16:53:56 UTC