2016-05-14 2 views
0

Я просто хочу выходной XML, как это:типа XSI и XSD тег

<ranzcp_user xmlns:ns1="urn:logon"> 
<user_id xsi:type="xsd:string">12345678</user_id> 
<user_name xsi:type="xsd:string">JTestFloor</user_name> 
<title xsi:type="xsd:string">Dr</title> 
<first_name xsi:type="xsd:string">TestJoni</first_name> 
<last_name xsi:type="xsd:string">TestFloor</last_name> 
<email xsi:type="xsd:string">[email protected] </email> 
<organisation_identifier xsi:type="xsd:string">RANZCPAU</organisation_identifier> 

У меня уже есть сервис ФОС для этого, в настоящее время это базовая модель им с помощью создать эти XML:

public class user 
{ 
    public string user_id { get; set; } 
    public string user_name { get; set; } 
    public string title { get; set; } 
    public string first_name { get; set; } 
    public string last_name { get; set; } 
    public string email { get; set; } 
    public string organisation_identifier { get; set; } 
} 

и простой призыв к сервису:

public class Service1 : IService1 
{ 
    public ranzcp_user UserData() 
    { 
     ranzcp_user data = new ranzcp_user(); 
     data.user_id = "12345678"; 
     data.user_name = "JTestFloor"; 
     data.title = "Dr"; 
     data.first_name = "TestJoni"; 
     data.last_name = "TestFloor"; 
     data.email = "[email protected]"; 
     data.organisation_identifier = "RANZCPAU"; 

     return data; 
    } 
} 

интерфейс:

[ServiceContract] 
public interface IService1 
{ 
    [OperationContract] 
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.WrappedRequest)] 
    ranzcp_user UserData(); 

    // TODO: Add your service operations here 
} 

Который затем дает мне на текущий момент в результате XML, как это: enter image description here

+0

Это помогает, если вы можете объяснить различия явно. Затем вы можете выполнить поиск по этому вопросу. См. Например [Как добавить атрибут xsi: type в XML-элемент] (http://stackoverflow.com/questions/24381588/how-to-add-xsitype-attribute-to-an-xml-element). – CodeCaster

+0

Привет @CodeCaster спасибо, честно говоря, я не знаю, что вы подразумеваете под этим, но я просто хочу добавить этот xsi: type = "xsd: string", так же, как сказать, что объект был строкового типа данных. спасибо –

+0

@CharlesMager yep больше похоже на это, но то, что мне нужно, это поместить его в каждый элемент в

ответ

3

Самый простой способ сделать это, чтобы изменить тип ваших свойств к чему-то менее специфичным - то сериализатору будет вставить тип атрибутов для идентификации типов.

public class ranzcp_user 
{ 
    public object user_id { get; set; } 
    public object user_name { get; set; } 
    public object title { get; set; } 
    public object first_name { get; set; } 
    public object last_name { get; set; } 
    public object email { get; set; } 
    public object organisation_identifier { get; set; } 
} 

См. this fiddle для рабочей демонстрации.

Смежные вопросы