Anteckning
Å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.
Alla datatyper, både primitiva och sammansatta typer, måste definieras med hjälp av en mall. När en datatyp har definierats kan alla attributmallar deklarera sitt värde som av en specifik datatyp med hjälp av *ValueType-direktivet . Värdet för det här direktivet är namnet på en datatypsmall.
När parserfiltret påträffar en GDL-datapost som är en instans av ett attribut, försöker det parsa värdedelen av den posten i enlighet med de syntaxregler som har definierats för den datatypen. Om det lyckas kommer parsningsfiltret att dela upp datatypen i sina primitiva XML-motsvarande datatyper och mata ut dessa värden i lämplig XML. Den genererade XML som representerar en sammansatt datatyp behåller den logiska strukturen för den ursprungliga datatypsdefinitionen. De underordnade elementen i en sammansatt datatyp är angivna namn som definieras av taggar som definieras i datatypmallen. Med den här namngivningen kan en mänsklig läsare eller programvaruklient för XML-ögonblicksbilden enkelt hitta och identifiera varje värde i en sammansatt datatyp.
En mall har angetts som en datatypsmall (en mall som definierar en datatyp) genom att ange direktivet *Type: DATATYPE . De direktiv som identifieras i en datatypmall är:
*ValueType:[Namn på datatypmall]. I det här direktivet deklareras värdet för ett attribut som av en viss datatyp. *ValueType-direktivet kan bara visas i attributmallar. (Attributmallar är mallar med direktivet *Type: ATTRIBUTE ).
*DataType:symbol. Det här direktivet har något av följande värden: PASSTHROUGH, XML_TYPE, XSD_DEFINED, ENUMERATOR, FILTER_TYPE, ARRAY, COMPOSITE eller MULTIPLE_PERSONALITY.
*ElementType:list. Det här direktivet definierar en lista över malldatatypnamn.
*RequiredDelimiter:delimiter. Det här direktivet definierar en avgränsare med en citerad sträng.
*OptionalDelimiter:delimiter. Det här direktivet definierar en valfri avgränsare med en citerad sträng.
*ArrayLabel:symbol. Det här direktivet definierar en matrisetikett med en citerad sträng.
*ElementTags:list. Det här direktivet definierar en lista över symboler som ska användas för elementtaggar.
*EnumeratorList:list. Det här direktivet definierar en lista med symboler som ska användas för en uppräkningslista.
*XSDTypeDefinition:symbol. Det här direktivet definierar ett godtyckligt värde, omgivet av <Begin/EndValue-element> , som ska användas för en XSD-typdefinition.
*ComplexType?:Boolean. Det här direktivet definierar om en typ är komplex eller inte. Om värdet är TRUE är typen komplex. annars är typen enkel.
*ArraySize:integer. Det här direktivet definierar intervallet för en matris. Du kan använda upp till två heltal för att ange ett matrisintervall.
*XMLDataType:string. Det här direktivet definierar en XML-datatyp med en citerad sträng.
FilterTypeName:string. Det här direktivet definierar ett filtertypnamn med hjälp av en citerad sträng.
*MaxValue:integer. Det här direktivet definierar den maximala storleken på ett värde med hjälp av ett GDL-heltal.
*MinLength:heltal. I det här direktivet definieras minimilängden för ett värde med hjälp av ett icke-negativt GDL-heltal.
*MaxLength: heltal. Det här direktivet definierar den maximala längden på ett värde med hjälp av ett icke-negativt GDL-heltal.
Not Alla direktiv identifieras inte i alla datatypsmallar.
I allmänhet, om ingen mall kan bindas till GDL-attributposten, genereras värdet för det attributet i ögonblicksbilden utan någon ändring i ett CDATA-avsnitt. CDATA ska finnas som elementinnehåll (dvs. det underordnade elementet) i ATTRIBUTE-elementet.
Anta till exempel att parsern inte kan hitta en mall som beskriver följande GDL-attributpost.
*ModelName: "OEMName LaserJet "
Posten visas sedan i ögonblicksbilden enligt följande.
<GDL_ATTRIBUTE Name="*ModelName"
<![CDATA["OEMName LaserJet "]]></GDL_ATTRIBUTE>