I wasn’t suggesting more types of elements. In general I was suggesting 2 things. One that for example
<Array size=“5” type=“xs:float”>
1.0 2.0 3.0 4.0 5.0
</Array>
Be changed or at least optionally be allowed to be something like
<Array size=“5” type=“xs:float” binary=“true”>
<![CDATA[$%%$$#"%"#$!$"$%$%&"]]>
</Array>
Where “$%%$$#”%"#$!$"$%$%&"" is the binary representation of those 5 floats in some format specified by Collada. Most likely the standard PC float format in PC byte order since that’s the most likely place for this data to be used.
Because while parsing 5 ascii representations of floats and converting them real floats is not a big deal, parsing 5 million of them is. If the format allowed this binary option and all the exporters supported it either by default or by option then when parcing an array, since I know the size “5” and I know the binary representation of the type because it would be specified in the Collada spec then once I hit <
For example IF the vertex format was something like
<vertices num=“3”>
<vert>1 2 3</vert>
<vert>3 2 1</vert>
<vert>5 5 6</vert>
</vertices>
or worse
<vertices num=“3”>
<vert><x>1</x><y>2</y><z>3</z></vert>
<vert><x>3</x><y>2</y><z>1</z></vert>
<vert><x>4</x><y>5</y><z>6</z></vert>
</vertices>
That would end up being hugely expensive to parse and most XML parsers would choke on it once the files sizes got really large since every single vertex would be stored in a separate element structure in the internal parse tree.