Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den interna XML-datatypen definieras som XML_TYPE.
Syntaxen definieras av XML. Alla datatyper som identifieras av XML-schemat kan definieras. Parsningsfiltret är inte beroende av XML-datatyperna, så den aktuella parsern kan stödja framtida XML-datatyper utan ändringar.
* DataType: XML_TYPE associerar en mall med en inbyggd enkel datatyp för ett specifikt XML-schemadefinitionsspråk . Instansdatavärdet matas ut som innehållet i ett XML-element vars xsi:type härleds från *XMLDataType-konstruktionen som anges av den här mallen.
Följande direktiv används för att definiera XML_TYPE datatyp:
*XMLDataType (krävs). Alla inbyggda XSD-scheman av enkel typ. World Wide Web Consortiums (W3C) rekommendation för XML-schemat identifierar följande inbyggda enkla datatyper: string, normalizedString, token, byte, unsignedByte, base64Binary, hexBinary, integer, positiveInteger, negativeInteger, nonNegativeInteger, nonPositiveInteger, int, unsignedInt, long, unsignedLong, short, unsignedShort, decimal, float, double, boolean, time, dateTime, duration, date, gMonth, gYear, gYearMonth, gDay, gMonthDay, Name, QName, NCName, anyURI, language, ID, IDREF, IDREFS, ENTITY, ENTITIES, NOTATION, NMTOKEN och NMTOKENS. Observera att GDL-parsern inte är begränsad till dessa datatyper och är utformad för att hantera framtida XML-datatyper utan ändringar.
*ArrayLabel (valfritt). Om du anger det här direktivet förväntar sig parsningsfiltret att värdet omges av parenteser, föregås av den angivna matrisetiketten.
Syntaxen för värdet måste följa den syntax som W3C XML-standarden definierar för den specifika datatypen. Om XML-syntaxen står i konflikt med de grundläggande GDL-syntaxreglerna, måste värdet (eller bara den motstridiga delen) omslutas av <Begin/EndValue:>-konstruktioner. XML-värden med sådana inkompatibla syntaxer, eller vars syntax är inkompatibel med syntaxen som används av sammansatta datatyper, kan inte visas som medlem i en sammansatt datatyp. Observera också att GDL-parsern inte kommer att undkomma särskilda XML-tecken som att öppna eller stänga hakparenteser (< eller >) eller ett et-tecken (&). Skaparen av värdet ansvarar för att följa XML-syntaxen för teckendata.
Tänk till exempel på följande mall.
*Template: XML_STRING
{
*Type: DATATYPE
*DataType: XML_TYPE
*XMLDataType: "string"
}
Om du använder föregående mall skapas följande XML-schemapost. Den här posten definierar en ny datatyp som härleds från den typ som ursprungligen angavs av *XMLDataType-direktivet , men den här nya datatypen har ytterligare XML-attribut som kan visas i ögonblicksbilden. Om du använde den ursprungliga datatypen skulle du få schemavalideringsfel eftersom de ursprungliga fördefinierade typerna inte tillåter att XML-attribut visas.
<complexType name = "GDLW_string">
<simpleContent>
<extension base="string">
<attribute name="Name" type="string" use="optional"/>
<attribute name="Personality" type="string" use="optional"/>
</extension>
</simpleContent>
</complexType>
Överväg följande GDL-post.
*Text: Hello World
Överväg PHRASE-mallen, som deklarerar GDL-attributet *Text att ha ett *ValueType som definieras av XML_STRING-mallen, som följande kodexempel visar.
*Template: PHRASE
{
*Name: "*Text"
*Type: ATTRIBUTE
*ValueType: XML_STRING
}
Om den tidigare GDL-inmatningen tolkas med hjälp av PHRASE-mallen, kommer följande XML-utdata att genereras.
<GDL_ATTRIBUTE Name="*Text" xsi:type="GDLW_string" >Hello World</GDL_ATTRIBUTE>
XML-attributet xsi:type används för att ange den datatyp som innehas av det här attributelementet eftersom schemat inte innehåller någon deklaration för det här elementet.