Префикс, используемый для элемента, действителен только в рамках объявления префикса. Другими словами, этот префикс 'cmp' действителен только для этого сериализованного XML.
Префикс - это не что иное, как сокращение пространства имен, которое он обозначает. В этом случае "cmp" означает {http://www.company.com/}.
Когда вы загружаете этот XML в документ DOM, «реальное объявление» для узла внутри этого DOM теперь «{http://www.company.com/}:Number".
Это даже очень короткое пространство имен, просто представьте себе среднее пространство имен и его размер, и я думаю, что мы можем согласиться, почему использование сокращений (называемых префиксом в XML) является хорошей идеей при сериализации любого документа XML.
Но как бы вы ни сериализовали его, он не меняет данные, которые он представляет. Так
<bla xmlns="http://www.company.com/" />
синтаксически отличается, но по значению совпадает с
<cmp:bla xmlns:cmp="http://www.company.com/" />
<{http://www.company.com/}:bla />
После прочтения этого требования требуется ли предоставлять сериализованный XML в формате, в котором в качестве префикса используется "cmp"? (поскольку это мыльный заголовок, я думаю, что этого требования нет), или мы можем использовать ЛЮБОЙ стиль сериализации xml, если мы не изменяем данные, которые они представляют? (это то, о чем заботятся парсеры, совместимые с пространствами имен W3C XML 1.0 +)
Если это не requrement, давайте не будем делать это один:)
Если это требование;
Вы можете связать XmlNamespaceManager с XmlSerializer. Это позволяет вам устанавливать связи префикса с пространством имен, которые затем будут использоваться при сериализации объекта.
Надеюсь, это поможет,