Obsługiwane typy XML — uwagi dotyczące implementacji

W tym temacie opisano szczegóły implementacji, o których chcesz wiedzieć.

Mapowania listy

Typy IList, , IEnumerableICollectionType[]i String służą do reprezentowania typów list języka definicji schematu XML (XSD).

Mapowania unii

Typy unii są reprezentowane przy użyciu XmlAtomicValue typu lub String . Typ źródła lub typ docelowy musi być zawsze albo StringXmlAtomicValue.

XmlSchemaDatatype Jeśli obiekt reprezentuje typ listy, obiekt konwertuje wartość ciągu wejściowego na listę co najmniej jednego obiektu. XmlSchemaDatatype Jeśli element reprezentuje typ unii, podjęto próbę przeanalizowana wartości wejściowej jako typu składowego unii. Jeśli próba analizy zakończy się niepowodzeniem, próba konwersji zostanie podjęta z następnym elementem członkowskim unii i tak dalej, dopóki konwersja nie powiedzie się lub nie ma innych typów składowych do wypróbowania, w tym przypadku zostanie zgłoszony wyjątek.

Różnice między typami danych CLR i XML

Poniżej opisano pewne niezgodności, które mogą wystąpić między typami CLR i typami danych XML oraz sposobem ich obsługi.

Uwaga

Prefiks xs jest mapowany na https://www.w3.org/2001/XMLSchema identyfikator URI przestrzeni nazw i .

System.TimeSpan i xs:duration

Typ xs:duration jest częściowo uporządkowany, ponieważ istnieją pewne wartości czasu trwania, które są różne, ale równoważne. Oznacza to, że wartość xs:duration typu, taka jak 1 miesiąc (P1M) jest mniejsza niż 32 dni (P32D), większa niż 27 dni (P27D) i równoważna 28, 29 lub 30 dni.

Klasa TimeSpan nie obsługuje tego częściowego porządkowania. Zamiast tego wybiera określoną liczbę dni dla 1 roku i 1 miesiąca; Odpowiednio 365 dni i 30 dni.

Aby uzyskać więcej informacji na xs:duration temat typu, zobacz W3C XML Schema Part 2: Datatypes Recommendation (Schemat XML W3C — część 2: zalecenie dotyczące typów danych).

xs:time, typy dat gregoriańskich i System.DateTime

xs:time Gdy wartość jest mapowana na DateTime obiekt, MinValue pole jest używane do inicjowania właściwości DateTime daty obiektu (takich jak Year, Monthi Day) do najmniejszej możliwej DateTime wartości.

Podobnie wystąpienia xs:gMonth, xs:gDay, xs:gYearxs:gYearMonth i xs:gMonthDay są również mapowane na DateTime obiekt. Nieużywane właściwości obiektu DateTime są inicjowane do tych z MinValueklasy .

Uwaga

Nie można polegać na DateTime.Year wartości, gdy zawartość jest typowana jako xs:gMonthDay. Wartość jest zawsze ustawiona DateTime.Year na wartość 1904 w tym przypadku.

xs:anyURI i System.Uri

Gdy wystąpienie xs:anyURI obiektu reprezentuje względny identyfikator URI jest mapowane na Uriobiekt , Uri obiekt nie ma podstawowego identyfikatora URI.

Zobacz też