Note sull'implementazione del supporto per il tipo XMLXML Type Support Implementation Notes

In questo argomento vengono descritti alcuni dettagli sull'implementazione di cui è consigliabile essere a conoscenza.This topic describes some implementation details that you want to be aware of.

Mapping degli elenchiList Mappings

I tipi IList, ICollection, IEnumerable, Type[] e String vengono usati per rappresentare i tipi di elenco XSD (XML Schema definition language).The IList, ICollection, IEnumerable, Type[], and String types are used to represent XML Schema definition language (XSD) list types.

Mapping delle unioniUnion Mappings

I tipi di unione vengono rappresentati usando il tipo XmlAtomicValue o String.Union types are represented using the XmlAtomicValue or String type. Pertanto, il tipo di origine o il tipo di destinazione devono sempre essere String o XmlAtomicValue.The source type or the destination type must therefore always be either String or XmlAtomicValue.

Se l'oggetto XmlSchemaDatatype rappresenta un tipo di elenco, tale oggetto converte il valore della stringa di input in un elenco di uno o più oggetti.If the XmlSchemaDatatype object represents a list type the object converts the input string value to a list of one or more objects. Se l'oggetto XmlSchemaDatatype rappresenta un tipo di unione, viene eseguito un tentativo di analisi del valore di input come tipo membro dell'unione.If the XmlSchemaDatatype represents a union type then an attempt is made to parse the input value as a member type of the union. Se il tentativo di analisi non viene eseguito correttamente, viene tentata la conversione con il successivo membro dell'unione e così via fino a quando la conversione non viene eseguita correttamente o non sono disponibili altri tipi di membro con cui provare. In questo caso verrà generata un'eccezione.If the parse attempt fails then the conversion is attempted with the next member of the union and so on until the conversion is successful, or there are no other member types to try, in which case an exception is thrown.

Differenze tra i tipi di dati CLR e XMLDifferences Between CLR and XML Data Types

Di seguito vengono descritte alcune corrispondenze errate che si possono verificare tra i tipi di dati CLR e i tipi di dati XML e la loro eventuale gestione.The following describes certain mismatches that can occur between CLR types and XML data types and how they are handled.

Nota

Il prefisso xs viene mappato in http://www.w3.org/2001/XMLSchema e nell'URI dello spazio dei nomi.The xs prefix is mapped to the http://www.w3.org/2001/XMLSchema and namespace URI.

System.TimeSpan e xs:durationSystem.TimeSpan and xs:duration

Il tipo xs:duration è parzialmente ordinato, poiché alcuni valori di durata sono diversi ma equivalenti.The xs:duration type is partially ordered in that there are certain duration values that are different but equivalent. Ciò significa che per il tipo xs:duration il valore di 1 mese (P1M) è minore di 32 giorni (P32D), maggiore di 27 giorni (P27D) ed equivalente a 28, 29 o 30 giorni.This means that for the xs:duration type value such as 1 month (P1M) is less than 32 days (P32D), larger than 27 days (P27D) and equivalent to 28, 29 or 30 days.

La classe TimeSpan non supporta questo ordinamento parziale.The TimeSpan class does not support this partial ordering. Invece, stabilisce un numero specifico di giorni per 1 anno e 1 mese: rispettivamente 365 e 30 giorni.Instead, it picks a specific number of days for 1 year and 1 month; 365 days and 30 days respectively.

Per altre informazioni sul tipo xs:duration, vedere la raccomandazione W3C XML Schema Part 2: Datatypes all'indirizzo http://www.w3.org/TR/xmlschema-2/.For more information on the xs:duration type, see the W3C XML Schema Part 2: Datatypes Recommendation at http://www.w3.org/TR/xmlschema-2/.

xs:time, tipi di date gregoriane e System.DateTimexs:time, Gregorian Date Types, and System.DateTime

Quando un valore xs:time è associato a un oggetto DateTime, il campo MinValue viene usato per inizializzare le proprietà relative alla data dell'oggetto DateTime (ad esempio, Year, Month e Day) impostandole sul valore DateTime più basso possibile.When an xs:time value is mapped to a DateTime object, the MinValue field is used to initialize the date properties of the DateTime object (such as Year, Month, and Day) to the smallest possible DateTime value.

Allo stesso modo, anche istanze di xs:gMonth, xs:gDay, xs:gYear, xs:gYearMonth e xs:gMonthDay vengono associate a un oggetto DateTime.Similarly, instances of xs:gMonth, xs:gDay, xs:gYear, xs:gYearMonth and xs:gMonthDay are also mapped to a DateTime object. Le proprietà inutilizzate nell'oggetto DateTime vengono inizializzate impostandole su quelle da MinValue.Unused properties on the DateTime object are initialized to those from MinValue.

Nota

Non è possibile usare il valore DateTime.Year quando il contenuto è tipizzato come xs:gMonthDay.You cannot rely on the DateTime.Year value when the content is typed as xs:gMonthDay. In questo caso il valore DateTime.Year è sempre impostato su 1904.The DateTime.Year value is always set to 1904 in this case.

xs:anyURI e System.Urixs:anyURI and System.Uri

Quando un'istanza di xs:anyURI che rappresenta un URI relativo viene associata a un tipo Uri, l'oggetto Uri non dispone di un URI di base.When an instance of xs:anyURI that represents a relative URI is mapped to a Uri, the Uri object does not have a base URI.

Vedere ancheSee Also

Supporto di tipi di dati nelle classi System.XmlType Support in the System.Xml Classes