2013-01-23 12 views
7

Come posso aggiungere il seguente xsi: schemaLocation a una classe serializzata?Come aggiungere xsi: schemaLocation all'oggetto serializzato

<ern:NewReleaseMessage xmlns:ern="http://ddex.net/xml/2010/ern-main/32" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         LanguageAndScriptCode="en" 
         xsi:schemaLocation="http://ddex.net/xml/2010/ern-main/32 http://ddex.net/xml/2010/ern-main/32/ern-main.xsd" 
         MessageSchemaVersionId="2010/ern-main/32"> 

Ecco quello che ho fatto finora:

public class NewReleaseMessage 
{ 
    [XmlAttribute] 
    public string LanguageAndScriptCode { get; set; } 

    [XmlAttribute("schemaLocation", Namespace = "http://ddex.net/xml/2010/ern-main/32")] 
    public string schemaLocation = "http://ddex.net/xml/2010/ern-main/32 http://ddex.net/xml/2010/ern-main/32/ern-main.xsd"; 

    [XmlAttribute] 
    public string MessageSchemaVersionId { get; set; } 

    [XmlElement()] 
    public MessageHeader MessageHeader { get; set; } 

} 

Quando ho deserializzare il XML all'oggetto in VS ottengo:

{ "Il metodo o il funzionamento non è implementata. " C'è un errore nel documento XML (5, 44) - Questo in realtà indica la linea: xsi: schemaLocation = "http://ddex.net/xml/2010/ern-main/32 http://ddex.net/xml/2010/ern-main/32/ern-main.xsd"

risposta

8

soultion :

[XmlAttribute(AttributeName = "schemaLocation", Namespace = "http://www.w3.org/2001/XMLSchema-instance")] 
public string schemaLocation { get; set; } 
+0

Grande, AttributeName è l'indizio (stavo usando ElementName senza successo). E NameSpace deve corrispondere a xmlns: xsi dichiarato. Molte grazie! –

Problemi correlati