XmlPL - Implicit Type Coercion

The table below lists XmlPL's implicit type conversions. Entries represent casts from the type in the left-most column, the from type to the type in the top-most row, the to type.

If the table entry is false then a cast from the from type to the to type is not allowed. If a true value or another type name is present then an implicit type coercion will be performed by the compiler. If another type is listed this indicates that the implicit type coercion will be performed in more than one step.

Some type names in the table are abbreviated. Their translations are listed below.

docdocument elemelement
attrattribute commcomment
preprefix strstring
intinteger boolboolean
seqsequence
nodedocelemattrtextcommpipreqnamestrintrealboolvoidnullnode seqdoc seqelem seqattr seqtext seqcomm seqpi seqpre seqqname seqstr seqint seqreal seqbool seq
node--------falsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruetrue--------truefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalseboolnode
doctrue--------falsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruetrue--------nodetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsebooldoc
elemtruefalse--------falsefalsefalsefalsefalsefalsefalsefalsefalsetruetrue--------nodefalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalseboolelem
attrtruefalsefalse--------falsefalsefalsefalsefalsetruefalsefalsetruetrue--------nodefalsefalsetruefalsefalsefalsefalsefalsestrfalsefalseboolattr
texttruefalsefalsefalse--------falsefalsefalsefalsetruefalsefalsetruetrue--------nodefalsefalsefalsetruefalsefalsefalsefalsestrfalsefalsebooltext
commtruefalsefalsefalsefalse--------falsefalsefalsetruefalsefalsetruetrue--------nodefalsefalsefalsefalsetruefalsefalsefalsestrfalsefalseboolcomm
pitruefalsefalsefalsefalsefalse--------falsefalsetruefalsefalsetruetrue--------nodefalsefalsefalsefalsefalsetruefalsefalsestrfalsefalseboolpi
pretextfalsefalsefalsestrfalsefalse--------falsetruefalsefalsetruetrue--------nodefalsefalsefalsetextfalsefalsetruefalsestrfalsefalseboolpre
qnametextfalsefalsefalsestrfalsefalsefalse--------truefalsefalsetruetrue--------nodefalsefalsefalsetextfalsefalsefalsetruestrfalsefalseboolqname
strtextfalsefalsefalsetruefalsefalsefalsetrue--------falsefalsetruetrue--------nodefalsefalsefalsetextfalsefalsefalsetruetruefalsefalseboolstr
inttextfalsefalsefalsestrfalsefalsefalsefalsetrue--------truetruetrue--------nodefalsefalsefalsetextfalsefalsefalsefalsestrtruerealboolint
realtextfalsefalsefalsestrfalsefalsefalsefalsetruefalse--------truetrue--------nodefalsefalsefalsetextfalsefalsefalsefalsestrfalsetrueboolreal
booltextfalsefalsefalsestrfalsefalsefalsefalsetruetruetrue--------true--------nodefalsefalsefalsetextfalsefalsefalsefalsestrintrealtruebool
voidfalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalse----------------falsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsevoid
nulltruetruetruetruetruetruetruetruetruetruetruetruetruetrue--------truetruetruetruetruetruetruetruetruetruetruetruetruenull
node seqtruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruetrue----------------falsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruenode seq
doc seqdoctruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruetrue--------true--------falsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruedoc seq
elem seqelemfalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalsetruetrue--------truefalse--------falsefalsefalsefalsefalsefalsefalsefalsefalsetrueelem seq
attr seqattrfalsefalsetruefalsefalsefalsefalsefalseattrfalsefalsetruetrue--------truefalsefalse--------falsefalsefalsefalsefalsetruefalsefalsetrueattr seq
text seqtextfalsefalsefalsetruefalsefalsefalsefalsetextfalsefalsetruetrue--------truefalsefalsefalse--------falsefalsefalsefalsetruefalsefalsetruetext seq
comm seqcommfalsefalsefalsefalsetruefalsefalsefalsecommfalsefalsetruetrue--------truefalsefalsefalsefalse--------falsefalsefalsetruefalsefalsetruecomm seq
pi seqpifalsefalsefalsefalsefalsetruefalsefalsepifalsefalsetruetrue--------truefalsefalsefalsefalsefalse--------falsefalsetruefalsefalsetruepi seq
pre seqprefalsefalsefalseprefalsefalsetruefalseprefalsefalsetruetrue--------text seqfalsefalsefalsestr seqfalsefalse--------falsetruefalsefalsetruepre seq
qname seqqnamefalsefalsefalseqnamefalsefalsefalsetrueqnamefalsefalsetruetrue--------text seqfalsefalsefalsestr seqfalsefalsefalse--------truefalsefalsetrueqname seq
str seqstrfalsefalsefalsestrfalsefalsefalsestrtruefalsefalsetruetrue--------text seqfalsefalsefalsetruefalsefalsefalsetrue--------falsefalsetruestr seq
int seqintfalsefalsefalseintfalsefalsefalsefalseinttruefalsetruetrue--------text seqfalsefalsefalsestr seqfalsefalsefalsefalsetrue--------truetrueint seq
real seqrealfalsefalsefalserealfalsefalsefalsefalserealfalsetruetruetrue--------text seqfalsefalsefalsestr seqfalsefalsefalsefalsetruefalse--------truereal seq
bool seqboolfalsefalsefalseboolfalsefalsefalsefalseboolboolbooltruetrue--------text seqfalsefalsefalsestr seqfalsefalsefalsefalsetruetruetrue--------bool seq
nodedocelemattrtextcommpipreqnamestrintrealboolvoidnullnode seqdoc seqelem seqattr seqtext seqcomm seqpi seqpre seqqname seqstr seqint seqreal seqbool seq