gbXML Help
XML Format
Language Frame
Tokenset Frame
XML Code
Sample Code
Manual Edits
Debug Mode
Dirty XML


Contact Me

GBIC >> FreeWare >> gbXML >> Dirty XML
gbXML - Dirty XML
The validscope and inheritfrom attributes must be assigned values which are the names of existing tokensets. If an invalid validscope/inhertfrom name is used, CodeMax will generate an error which the using program must handle.

To avoid such problems, gbXML forces the user to select from a list of existing tokensets. However, should the user decide to delete or exclude a tokenset from a language, the prior entry of a tokenset is not affected and could result in a language file definition that contains invalid attributes.

gbXML resolves this problem by checking each validscope and inheritfrom value before creating the language definition file. If the value does not exist, then gbXML does not add the entry to the language definition file.

The incorrect values are kept in the gbXML database in order not to lose the user selection. A user might include/exclude a tokenset multiple time throughout the process of finalizing a language definition, so keeping the invalid references but not writing them into the XML language file prevents the user from having to re-enter a reference multiple times.

The gbXML operations which might cause an invalid validscope/inheritfrom reference are tokenset deletion, renaming of a tokenset, or exclusion of a tokenset (unselecting it from the tokenset list). When one of these actions occurs, and an invalid reference is detected, gbXML will go ahead and write the XML code with those reference removed and change the color of the status label from green to red to acknowledge that the user settings contain invalid references.

The status label is just to the right of the Save button above the XML Code textbox.

To see details on the invalid reference, simply click the status label to enter the 'Validity' debug mode, which will replace the Tokens and Tokens2 textboxes with a single textbox that lists the tokensets where the invalid references occurred.

See the section on Debug Mode for more details.

Invalid Memberlist entries are handled in a similar way. If the user imports, or manually edits a language file and winds up with an invalid memberlist value, the invalid reference is kept in the database but not included in the XML definition code.