willemdj / erlsom

XML parser for Erlang
GNU Lesser General Public License v3.0
264 stars 103 forks source link

simple_form/2 don't keep attributes order according to the document's #87

Open GPrimola opened 1 year ago

GPrimola commented 1 year ago

When using simple_form/2 the order of the attributes are reversed in regarding the document's order.

Evidences

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300px" height="100px" version="1.1"
     xmlns="http://www.w3.org/2000/svg">
  <desc>Example InitialCoords - SVG's initial coordinate system</desc>

  <g fill="none" stroke="black" stroke-width="3" >
    <line x1="0" y1="1.5" x2="300" y2="1.5" />
    <line x1="1.5" y1="0" x2="1.5" y2="100" />
  </g>
  <g fill="red" stroke="none" >
    <rect x="0" y="0" width="3" height="3" />
    <rect x="297" y="0" width="3" height="3" />
    <rect x="0" y="97" width="3" height="3" />
  </g>
  <g font-size="14" font-family="Verdana" >
    <text x="10" y="20">(0,0)</text>
    <text x="240" y="20">(300,0)</text>
    <text x="10" y="90">(0,100)</text>
  </g>
</svg>
{:ok,
 {'svg', [{'version', '1.1'}, {'height', '100px'}, {'width', '300px'}],
  [
    {'desc', [], ['Example InitialCoords - SVG\'s initial coordinate system']},
    {'g', [{'stroke-width', '3'}, {'stroke', 'black'}, {'fill', 'none'}],
     [
       {'line', [{'y2', '1.5'}, {'x2', '300'}, {'y1', '1.5'}, {'x1', '0'}], []},
       {'line', [{'y2', '100'}, {'x2', '1.5'}, {'y1', '0'}, {'x1', '1.5'}], []}
     ]},
    {'g', [{'stroke', 'none'}, {'fill', 'red'}],
     [
       {'rect', [{'height', '3'}, {'width', '3'}, {'y', '0'}, {'x', '0'}], []},
       {'rect', [{'height', '3'}, {'width', '3'}, {'y', '0'}, {'x', '297'}], []},
       {'rect', [{'height', '3'}, {'width', '3'}, {'y', '97'}, {'x', '0'}], []}
     ]},
    {'g', [{'font-family', 'Verdana'}, {'font-size', '14'}],
     [
       {'text', [{'y', '20'}, {'x', '10'}], ['(0,0)']},
       {'text', [{'y', '20'}, {'x', '240'}], ['(300,0)']},
       {'text', [{'y', '90'}, {'x', '10'}], ['(0,100)']}
     ]}
  ]}, '\n'}