Liquid XML Data Binder (C++, Java, VB6) / Help With Your Evaluation / What is XML Data Binding / XML Data Binding - Product capabilities
In This Topic
    XML Data Binding - Product capabilities
    In This Topic
     


    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
        C#
        VB .Net
        C++ (Win32, Linux, Solaris etc.)
        Java
        Visual Basic 6

    Product

    Liquid XML Data Binding Wizard

      Gen Sup
    ComplexType groups
        Sequence
        Choice
        All
        Multiple Models, same complextype
    Types
        Hex/Base64
        Date/Time/gMonthDay etc.
        Collections of primitives
    All primitive data types *18
        unions *2
        any
        anyAttribute
        default values
        Pad chars (&<>" etc.) N/A
        Strongly Typed Output N/A
    Facets
        fractionDigits
        length
        maxExclusive
        minExclusive
        maxInclusive
        minInclusive
        maxLength
        minLength
        pattern *9
        totalDigits
        whiteSpace
    Cardinality
        Optional
        Mandatory
        Multiple
    Enumeration's
        Enumerated Attributes
        Enumerated Elements
        0-n Enumerated Elements
    Documentation
        Documentation Generation
        Include comments from Schema
    complexContent
        extension
        restriction *7
        Different base model types
    Schema
         Namespace
         Import
         Include
         groups
         Recursively defined elements
         substitutionGroups
         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.