пространства имен xmlns - основной геморрой...
1.все объявления пространств имен xmlns должны идти раньше чем атрибуты (ds5:id="ID001" надо перенести в "хвост" тэга <ds4:Body>)
2.и пр.имен и атрибуты должны быть упорядочены по алфавиту (xmlns:ds5 должен идти позже чем все остальные, которые останутся, xmlns:ds6 исчезнет совсем п.3)
3.не используемые в xml пр.имен должны быть удалены (xmlns:ds6="http:")
4.узлы одного уровня НЕ упорядочиваются по афавиту, а остаются на своих местах (<ds5:Inner2/> идет раньше чем <ds3:Inner/>... так и должно остаться)
5!!!!!.пр.имен должны быть объявлены только в тех узлах, в которых они используются (xmlns:ds1 не используется в <ds4:Body> должен быть опущен ниже, до <ds1:Sender>)
C-XML:
<ds4:Body xmlns:ds4="http:" xmlns:ds5="http:" ds5:id="ID001">
<ds1:Sender xmlns:ds1="http:"> ds1 нигде "выше" не используется
<ds2:Code xmlns:ds2="http:">1226</ds2:Code> ds2 нигде "выше" не используется
<ds2:Name xmlns:ds2="http:">Компания</ds2:Name> ds2 нигде "выше" не используется
<ds4:Code2>1228</ds4:Code2> а вот ds4 уже был обявлен ранее в родительском узле
</ds1:Sender>
<ds5:Inner2></ds5:Inner2> ds5 уже использовался (и объявлялся) ранее.. в <ds4:Body .... ds5:id="ID001">
<ds3:Inner xmlns:ds3="http:"></ds3:Inner> порядок тегов одного уровня не изменился!
<ds3:Autor xmlns:ds3="http:"></ds3:Autor> порядок тегов одного уровня не изменился!
</ds4:Body>
без примечаний:
<ds4:Body xmlns:ds4="http:" xmlns:ds5="http:" ds5:id="ID001">
<ds1:Sender xmlns:ds1="http:">
<ds2:Code xmlns:ds2="http:">1226</ds2:Code>
<ds2:Name xmlns:ds2="http:">Компания</ds2:Name>
<ds4:Code2>1228</ds4:Code2>
</ds1:Sender>
<ds5:Inner2></ds5:Inner2>
<ds3:Inner xmlns:ds3="http:"></ds3:Inner>
<ds3:Autor xmlns:ds3="http:"></ds3:Autor>
</ds4:Body>
Отредактировано пользователем 10 февраля 2015 г. 12:04:47(UTC)
| Причина: Не указана