Share via


Implementatieopmerkingen voor XML-type ondersteunen

In dit onderwerp worden enkele implementatiedetails beschreven waarvan u rekening wilt houden.

Lijsttoewijzingen

De IListtypen , ICollection, IEnumerableType[] en String typen worden gebruikt om de lijsttypen XML Schema Definition Language (XSD) weer te geven.

Samenvoegtoewijzingen

Samenvoegtypen worden weergegeven met behulp van het XmlAtomicValue of String type. Het brontype of het doeltype moet daarom altijd String of XmlAtomicValue.

Als het XmlSchemaDatatype object een lijsttype vertegenwoordigt, converteert het object de invoertekenreekswaarde naar een lijst met een of meer objecten. Als het XmlSchemaDatatype een samenvoegtype vertegenwoordigt, wordt geprobeerd de invoerwaarde te parseren als lidtype van de samenvoeging. Als de parseringspoging mislukt, wordt de conversie geprobeerd met het volgende lid van de samenvoeging, enzovoort totdat de conversie is geslaagd, of er zijn geen andere lidtypen om te proberen. In dat geval wordt er een uitzondering gegenereerd.

Verschillen tussen CLR- en XML-gegevenstypen

Hieronder worden bepaalde verschillen beschreven die kunnen optreden tussen CLR-typen en XML-gegevenstypen en hoe ze worden verwerkt.

Notitie

Het xs voorvoegsel wordt toegewezen aan de URI van de https://www.w3.org/2001/XMLSchema naamruimte.

System.TimeSpan en xs:duration

Het xs:duration type is gedeeltelijk geordend omdat er bepaalde duurwaarden zijn die verschillend maar gelijkwaardig zijn. Dit betekent dat voor de xs:duration typewaarde, zoals 1 maand (P1M), kleiner is dan 32 dagen (P32D), groter dan 27 dagen (P27D) en gelijk is aan 28, 29 of 30 dagen.

De TimeSpan klasse biedt geen ondersteuning voor deze gedeeltelijke bestelling. In plaats daarvan kiest het een specifiek aantal dagen voor 1 jaar en 1 maand; Respectievelijk 365 dagen en 30 dagen.

Zie het W3C XML-schema deel 2: Aanbeveling voor gegevenstypen voor meer informatie over het xs:duration type.

xs:time, Gregoriaanse datumtypen en System.DateTime

Wanneer een xs:time waarde wordt toegewezen aan een DateTime object, wordt het MinValue veld gebruikt om de datumeigenschappen van het DateTime object (zoals YearMonth, en Day) te initialiseren naar de kleinste mogelijke DateTime waarde.

Op dezelfde manier worden exemplaren van xs:gMonth, xs:gDayen xs:gYearMonthxs:gYearxs:gMonthDay ook toegewezen aan een DateTime object. Ongebruikte eigenschappen van het DateTime object worden geïnitialiseerd naar eigenschappen van waaruit MinValue.

Notitie

U kunt niet vertrouwen op de DateTime.Year waarde wanneer de inhoud wordt getypt als xs:gMonthDay. De DateTime.Year waarde is altijd ingesteld op 1904 in dit geval.

xs:anyURI en System.Uri

Wanneer een exemplaar van xs:anyURI die een relatieve URI aan een Uriwordt toegewezen, heeft het Uri object geen basis-URI.

Zie ook