Wednesday, October 16, 2024

New Release - Liquid Studio v20.7.17

Announcing Liquid Studio v20.7.17

  • Added Wizard option to 'Treat Arrays as Required' when converting XML Schema (XSD) to JSON Schema
  • Improved console parameter parsing and error messages in Data Mapper
  • Fixed issues printing Data Mapper transforms on colour and non-colour printers
  • Fixed issues saving images of Data Mapper transforms
  • Added options to Save Images using Light Theme and Save images using a Transparent Background
  • Fixed issues with context sensitive help on Wizard pages
  • General Fixes

Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download


Monday, October 07, 2024

New Release - Liquid Studio v20.7.16

Announcing Liquid Studio v20.7.16

  • Added MinValue and MaxValue components to Data Mapper
  • Improved validation in Data Mapper to report warning when inputs to sub functions are not connected
  • Fixed issue in Data Mapper where optimizer removed branch that contained a referenced constant
  • Fixed issue in Data Mapper when reading additional properties and pattern properties from JSON Schema
  • Fixed issue in Data Mapper writing additional properties
  • Improved installer to remember previously selected features when upgrading
  • Fixed issues with using ctrl key to select items in Project Tree
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Monday, September 23, 2024

New Release - Liquid Studio v20.7.15

Announcing Liquid Studio v20.7.15

  • Fixed issue causing Data Mapper to report a missing parameter in generated code
  • Added missing folder JsonSchemaToHtml to Installer, containing example XSLT templates for JSON Schema to HTML documentation generator
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Thursday, September 05, 2024

New Release - Liquid Studio v20.7.14

Announcing Liquid Studio v20.7.14

  • Fixed issue using the High Conformance option with Visual Basic .Net in Liquid XML Objects
  • Changed array properties to be marked as required when converting XML Schema to JSON Schema
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Thursday, August 22, 2024

New Release - Liquid Studio v20.7.13

Announcing Liquid Studio v20.7.13

  • Added DoubleConversionRules option to BigDecimal used when constructing a BigDecimal from a double in Liquid XML Objects
  • Updated XML Schema (XSD) to JSON Schema Converter to generate string array types for IDREFS, ENTITIES and NMTOKENS
  • Updated Data Mapper Web Services Components to expand nodes for AnyOf, OneOf, AllOf YAML schema and JSON Schema values
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Thursday, July 25, 2024

New Release - Liquid Studio v20.7.12

Announcing Liquid Studio v20.7.12

  • Fixed issue where OleDb connections (e.g. Microsoft Access) failed to show Database Tables
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Tuesday, June 18, 2024

New Release - Liquid Studio v20.7.11

Announcing Liquid Studio v20.7.11

  • Performance optimizations for Liquid XML Objects
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Thursday, June 06, 2024

New Release - Liquid Studio v20.7.10

Announcing Liquid Studio v20.7.10

  • Added .Net 8.0 option to XML Data Binder for C# and Visual Basic .Net
  • Added .Net 6.0+ support to XML Data Binder Viewer Nuget, so you can now generate a SampleApp UI when generating .Net 6.0/7.0/8.0 XML Data Binding code
  • Added Clone option Liquid XML Objects generated classes to perform a deep copy of an object hierarchy
  • Added option to rename Enumeration Values in Liquid XML Objects using a caddy file
  • Fixed issues with command line processing in Liquid XML Objects
  • Updated documentation for Liquid XML Objects and XML Data Binder
  • Fixed issues from user exception reports
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Friday, April 26, 2024

New Release - Liquid Studio v20.7.9

 Announcing Liquid Studio v20.7.9:

  • Added ability to set a custom banner text in Liquid XML Objects
  • Added property option in Data Mapper XML Writer to set disable-output-escaping option in XSLT
  • Fixed issues in Property Grid in Data Mapper when changing between .Net and XSLT code generation engines
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Monday, April 08, 2024

New Release - Liquid Studio v20.7.8

Announcing Liquid Studio v20.7.8:

  • Added option to provide an output filename when calling Flatten XSD from command line
  • Fixed issue not saving file when using Flatten XSD and the close option from command line
  • Fixed issue with schema validation settings getting unset after save as command
  • Fixed issues in the example JSON schema BookStore.json and data file Catalog.json
  • Fixed issues from user exception reports
  • General Fixes

Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Tuesday, March 05, 2024

New Release - Liquid Studio v20.7.7

Announcing Liquid Studio v20.7.7:

  • Fixed menu, toolbar and shortcut key issues introduced in v20.7.6
  • Fixed issue with XML Grid locking up on high DPI screens
  • Fixed issue with JSON Grid locking up on high DPI screens
  • Improved error handling when schemastore.org is inaccessible for retrieving JSON schema
  • Fixed issue in Json Schema Editor where pasting and dragging data always serialized the data as JSON Schema Draft 4 standard instead of the appropriate version
  • Fixed issue where some ASCII files were mistakenly loaded as UTF-16 data
  • Fixed issues in XSLT and XQuery Debugger Variables Tree List
  • Fixed issues with Project Tree showing wrong status after files moved or added
  • Fixed issues with Project Tree when renaming file or folder
  • Fixed issues with Project Tree selection highlighting and scrolling
  • Fixed issues with Project Tree cursor keys expanding and collapsing items
  • General Fixes

Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Monday, January 29, 2024

New Release - Liquid Studio v20.7.5

 Announcing Liquid Studio v20.7.5:

  • Fixed issues in Large File Editor find and replace
  • Fixed issues in Large File Editor undo functionality
  • Added option to write XML nil as JSON null in XML Data Binder for .Net
  • Added option to write XML nil as JSON null in Liquid XML Objects
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download

Tuesday, January 09, 2024

Converting xs:any defined XML data to JSON data

Converting XML data to JSON data can be difficult, a case in point is where the XML Schema (XSD) specifies that an element is a collection (i.e. maxOccurs >1) of type xs:any as shown in the image below:

Example XML Schema (XSD)

If the collection was a concrete type, say a list of author elements, this scenario would simply produce an array in the converted JSON output:
"author": [
  { ...

However, when we convert data in an xs:any, we have no idea if it should be written as an object or an array in the converted JSON output.

If we have XML data such as:

<item>
    <row>Any data</row>
    <row>Some other data</row>
    <row>...more rows...</row>
</item>

you could say that if there is more than one 'row' value present, then we should write an array, but this leads to output that is quite different depending on the input.

i.e. if there is only a single item in the XML, then the JSON output produced would be something like:

"item": [
  {
    "row": {
      "#text": "Any data"
    }
  }
]

but if there were multiple items in the XML, then the JSON output produced would be:

"item": [
  {
    "row": [
      {
        "#text": "Any Data"
      },
      {
        "#text": "Some other data"
      }
    ]
  }
]

It also means the writer would need to hold the state of the last processed object in order to know whether to write an object or an array, and this does not work well with stream based writers.

As such, when we developed this functionality in Liquid XML Objects and Liquid XML Data Binder, we took the approach of outputting multiple properties with the same name:

"item": [
  {
    "row": {
        "#text": "Any Data"
    },
    "row": {
        "#text": "Some other data"
    }
  }
]

Whilst not ideal, the output is consistent and as the JSON specification places no restrictions on duplicate keys this is a valid approach.

If possible, a better solution would be to change the XML Schema (XSD) to specify a concrete type for the data rather than using xs:any, so the JSON writer would then know that the 'row' element is a collection and will write it as an array.

What is Liquid XML Objects?

Liquid XML Objects is a direct replacement for Microsoft Visual Studio's xsd.exe and includes better XSD 1.0 standard support, support for W3C XSD 1.1, support for JSON serialization and much more. The XML Objects generator is integrated into Microsoft Visual Studio and support C# and Visual Basic .Net.

What is Liquid XML Data Binder?

Liquid XML Data Binder creates simple, intuitive code from your W3C XML Schema (XSD). The generated code library contains strongly typed classes, collections, and enumerations to create an intuitive custom API to code against from your C++, Java or VB6 (COM) source code.


Download a Free Trial and Free Community Version of Liquid XML Objects and Liquid XML Data Binder:
https://www.liquid-technologies.com/trial-download