Udostępnij przez


Obsługiwane typy XML — uwagi dotyczące implementacji

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

Mapowania listy

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

Mapowania unii

Typy unii są rozpoznawane za pomocą typu XmlAtomicValue lub String. Typ źródła lub typ docelowy musi być zawsze albo String albo XmlAtomicValue.

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 / Notatka

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

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

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

Podobnie wystąpienia xs:gMonth, xs:gDay, xs:gYearxs:gYearMonth i xs:gMonthDay są również mapowane na DateTime obiekt. Nieaktywne właściwości obiektu DateTime są inicjowane wartościami z MinValue.

Uwaga / Notatka

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

xs:anyURI i System.Uri

Gdy wystąpienie xs:anyURI reprezentujące względny URI jest mapowane na obiekt Uri, obiekt Uri nie ma podstawowego URI.

Zobacz także