Ниже приведен комментарий, но он слишком длинный, поэтому я выложу его здесь.
Класс CandidateType
правильно оформлен атрибутом XmlType
. Это атрибут, который применяется к типам и определяет, как тип будет передаваться в любой сгенерированной XML-схеме. Он не имеет ничего общего с пространством имен элемента, который имеет один и тот же тип.
Рассмотрим следующий код C #:
public class CandidateType {}
public class Foo
{
CandidateType _candidate1;
CandidateType _candidate2;
}
Обратите внимание, что вы можете иметь несколько переменных одного типа. Таким же образом вы могли бы иметь:
<xs:element name="Candidate1" type="hrx:CandidateType"/>
<xs:element name="Candidate2" type="hrx:CandidateType"/>
Это два элемента, которые будут проверяться на соответствие одному и тому же определению типа, но в остальном они не связаны. Если они находятся в одной XML-схеме, они будут в одном и том же пространстве имен. Но что, если они не? Тогда вы можете получить экземпляр документа, например:
<ns1:Candidate1 xmlns:ns1="namespace1" xmlns="http://www.hr-xml.org/3"> ... </ns1:Candidate1>
<ns2:Candidate2 xmlns:ns2="namespace2" xmlns="http://www.hr-xml.org/3"> ... </ns1:Candidate2>
Вам нужно указать пространство имен элемента Candidate
для сериализатора XML. Тот факт, что тип CandidateType
находится в определенном пространстве имен, не определяет пространство имен элемента Candidate
.