What is XML Data Binding - Tutorial - Part 2/3 What is XML Data Binding - Tutorial - Part 2/3

Home > XML Tutorials > Part 2 - What is XML Data Binding?

Liquid XML Data Binder Functionality

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

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

Product Liquid XML Data Binding Wizard
Languages Supported
    C#
        Generate source and project files for:
        - .Net Framework
        - .Net Core
        - .Net Standard
        - PCL (Silverlight, Windows Phone, Xamarin.Android, Xamarin.iOS)
    VB.Net
        Generate source and project files for:
        - .Net Framework
        - .Net Core
        - .Net Standard
        - PCL (Silverlight, Windows Phone, Xamarin.Android, Xamarin.iOS)
    C++ (Win32, Win64, Linux, Solaris etc.)
        Generate C++ header, source and project files for:
        - Microsoft Visual C++
            - 32 bit for Windows
            - 64 bit for Windows
        - GNU g++
            - 32 bit for Linux
            - 64 bit for Linux
            - 64 bit for Mac OS X
    Java
    Visual Basic 6

Product Liquid XML Data Binding Wizard
Supported Feature Generated Supported
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

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

*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.

Like what you see? Try Liquid Studio Free Free Trial

More Editors and Tools

FEATURE DETAILS XML Data Binder

XML Data Binder (C++, Java, VB6)

FEATURE DETAILS Graphical XSD Editor

Graphical XML Schema Editor(XSD)

FEATURE DETAILS XML Data Binding Editions

XML Data Binding Editions