anchor.diff:  
   Attributes: `id`, `clipPathUnits`, `transform` and `clip-path`.
   
  -* `id` is always set and never empty.
  -
   === mask
   
   Children: `g`, `path`, `text` and `image`.
   
   Attributes: `id`, `maskUnits`, `maskContentUnits`, `x`, `y`, `width` and `height`.
   
  -* `id` is always set and never empty.
  +=== marker
  +
  +Children: `g`, `path`, `text` and `image`.
  +
  +Attributes: `id`, `markerUnits`, `refX`, `refY`, `markerWidth`, `markerHeight`
  +`viewBox`, `preserveAspectRatio`, `orient` and `overflow`.
  +
  +* `orient` is either `auto` or an angle in degrees.
  +* `viewBox` and `preserveAspectRatio` are optional.
   
   === g
   
   The group element indicates that a new canvas should be created.
  -All groups children elements will be rendered on it and then merged to
  +All groups children elements will be rendered on it and then merged into
   the parent canvas.
   
   Since it's pretty expensive, especially memory wise, _usvg_
   will remove as many groups as possible.
   All the remaining one will indicate that a new canvas must be created.
   
  -A group can be empty when it has `filter` attribute.
  +A group can be empty when it has a `filter` attribute.
   
   Children: `g`, `path`, `text` and `image`.
   
  
positive.code: Attributes: `id`, `patternUnits`, `patternContentUnits`, `transform`,
  `x`, `y`, `width`, `height`, `viewBox` and `preserveAspectRatio`.
  
  * `id` is always set and never empty.
  * `width` and `height` are always > 0.
  
  === clipPath
  
  `clipPath` defines a 1-bit mask using children elements.
  
negative.code: Gradient doesn't have `xlink:href` attribute because all attributes and `stop` children
  are already resolved and copied to the gradient.
  
  Children: `stop`.
  
  Attributes: `id`, `x1`, `y1`, `x2`, `y2`, `gradientUnits`, `spreadMethod`,
  `gradientTransform`.
  
  * See `<<transform_attr,transform>>` for `gradientTransform`.
  
  === radialGradient
  
  See `<<linearGradient_elem,linearGradient>>`.
  
  Children: `stop`.
  
  Attributes: `id`, `cx`, `cy`, `r`, `fx`, `fy`, `gradientUnits`, `spreadMethod`,
  `gradientTransform`.
  
  * `r` always > 0.
  * `fx` and `fy` are always inside the circle defined by `cx`, `cy` and `r`.
  * See `<<transform_attr,transform>>` for `gradientTransform`.
  
  === stop
  
  Attributes: `offset`, `stop-color`, `stop-opacity`.
  