Sdílet prostřednictvím


Poznámky k implementaci podpory typů XML

Toto téma popisuje některé podrobnosti implementace, o nichž chcete vědět.

Mapování seznamů

Typy IList, , ICollection, , IEnumerableType[] a String typy se používají k reprezentaci typů jazyka XSD (XML Schema Definition Language).

Mapování sjednocení

Typy sjednocení jsou reprezentovány pomocí XmlAtomicValue typu nebo String typu. Typ zdroje nebo cílový typ proto musí být vždy buď String nebo XmlAtomicValue.

XmlSchemaDatatype Pokud objekt představuje typ seznamu objekt, převede vstupní řetězcovou hodnotu na seznam jednoho nebo více objektů. XmlSchemaDatatype Pokud představuje typ sjednocení, provede se pokus o parsování vstupní hodnoty jako typ člena sjednocení. Pokud pokus o analýzu selže, pokusí se převod provést s dalším členem sjednocení a tak dále, dokud převod nebude úspěšný, nebo neexistují žádné další typy členů, které by bylo potřeba zkusit, v takovém případě je vyvolána výjimka.

Rozdíly mezi datovými typy CLR a XML

Následující popis popisuje určité neshody, ke kterým může dojít mezi typy CLR a datovými typy XML a způsobem jejich zpracování.

Poznámka:

Předpona xs se mapuje na https://www.w3.org/2001/XMLSchema identifikátor URI oboru názvů.

System.TimeSpan a xs:duration

Typ xs:duration je částečně seřazený v tom, že existují určité hodnoty doby trvání, které jsou odlišné, ale ekvivalentní. To znamená, že hodnota xs:duration typu, například 1 měsíc (P1M), je menší než 32 dní (P32D), větší než 27 dní (P27D) a odpovídá 28, 29 nebo 30 dnům.

Třída TimeSpan nepodporuje toto částečné řazení. Místo toho vybere určitý počet dní pro 1 rok a 1 měsíc; 365 dní a 30 dnů.

Další informace o xs:duration typu naleznete v tématu W3C XML Schéma Část 2: Doporučení datových typů.

xs:time, gregoriánské typy kalendářních dat a System.DateTime

xs:time Při mapování hodnoty na DateTime objekt se MinValue pole použije k inicializaci vlastností data objektu DateTime (například Year, Montha Day) na nejmenší možnou DateTime hodnotu.

Podobně jsou instance xs:gMonth, , xs:gDayxs:gYearMonthxs:gYeara xs:gMonthDay jsou také mapovány na DateTime objekt. Nepoužité vlastnosti objektu DateTime jsou inicializovány na ty z MinValue.

Poznámka:

Nelze spoléhat na DateTime.Year hodnotu, pokud je obsah zadán jako xs:gMonthDay. Hodnota DateTime.Year je v tomto případě vždy nastavená na hodnotu 1904.

xs:anyURI a System.Uri

Pokud je instancexs:anyURI, která představuje relativní identifikátor URI mapován na , UriUri objekt nemá základní identifikátor URI.

Viz také