Liquid XML Data Binder 2019
XML Data Binding - Product capabilities
Liquid XML Data Binder (C++, Java, VB6) > Help With Your Evaluation > What is XML Data Binding > XML Data Binding - Product capabilities

Product Functionality ?

This section provides an overview of what the Liquid XML Data Binding wizard can do.

Part 1 - What is XML Data Binding? - an introduction to the technology.
Part 2 - The Product - a summary of the product.
Part 3 - In Detail - a more in depth look at what is produced when code is generated from a schema.

User Created Schemas
If you are designing your own schema, then your in a position to tailor your schema to work around any limitations in the data binding product you select. Because of this even a fairly limited binding product can be expected to produce working code if the schema contains constructs that it can deal with. However, this approach may result in you compromising the design of your schemas, forcing you to use very simple constructs and types. These compromises may ultimately impact on the development of your project. The aim here at Liquid technologies is to remove such limitations, allowing you to write schemas how you want to.

3rd Party Schemas
The limitations of many of the available products is more important when dealing with 3rd party (standard) schemas. The problem with standard schemas is your not in a position to change them, you can sometimes tweak the way in which they are written but you can't change there meaning. So imagine you start off using a standard schema, and use an inferior product which initially works OK. Later the next version of the schema is released, and it makes use of more of the XSD standard (say extensions), and now the code won't work any more. What do you do?
Your more or less back to square one. Your only real option is to go and look for a product that does support your new schema, but this will mean re-factoring all your existing code. So on balance it would be better to select a product that provides a large amount of support up front.

Functionality Summary

Gen - Generates code for schemas with these features
Sup - Supports these features correctly in the code that is created.

Product Liquid XML Data Binding Wizard
Languages Supported
    VB .Net
    C++ (Win32, Linux, Solaris etc.)
    Visual Basic 6


Liquid XML Data Binding Wizard

  Gen Sup
ComplexType groups
    Multiple Models, same complextype
    Date/Time/gMonthDay etc.
    Collections of primitives
All primitive data types *18
    unions *2
    default values
    Pad chars (&<>" etc.) N/A
    Strongly Typed Output N/A
    pattern *9
    Enumerated Attributes
    Enumerated Elements
    0-n Enumerated Elements
    Documentation Generation
    Include comments from Schema
    restriction *7
    Different base model types
     Recursively defined elements
     Invalid names for the language
     Elements & attributes with same name
     Mixed elements *8

*1 No validation is done on the order that the elements are in
*2 Treated as strings
*3 Only applies on strings
*4 A choice with 0 or many elements is falsely accepted
*5 No validation is done to ensure mandatory fields are populated.
*6 Ignores elements that are valid substitution elements
*7 Allows child elements that have been restricted.
*8 Can't handle mixed content (like HTML <H1>text<B>more text</B>Some More Text</H1> 'text' & 'Some More Text' get misrepresented; typically concatenated).
*9 Supported on some data types
*10 Choices, and some uses of extension cause un typed object's to be returned.
*11 It is possible to produce invalid XML output
*12 Elements are missing from the output
*13 Strange bug whereby it invented 2 unsigned Byte elements with arbitrary values where only 1 is declared in the XML.
*14 Enumeration's that are not based on strings, are named badly (value0, value1, value2 etc.)
*15 No validation is done when setting values
*16 No validation is done when reading XML
*17 No support for optional groups (i.e. an optional sequence or choice)
*18 All data types are supported but the validation rules are not applied to all of the types.
*19 Many primitive types are not supported, resulting in code that does not compile (ENTITY, ENTITIES, name, token, UnsignedLong UnsignedInt, UnsignedShort, UnsignedByte)
*20 Using facets on some data types (i.e. gDay) causes the output code to be invalid (i.e. not compile)
*21 Creates JavaDoc comments
*22 Enumerated types are supported but treated as primitives (no validation is performed)
*23 Collections are not strongly typed.