Liquid Technologies Blog - Liquid XML

RSS: Liquid XML Data Binder

http://blog.liquid-technologies.com/rss.xml

Liquid Technologies Blog - Liquid XML

Liquid XML is the ultimate XML Development and Data Transformation Environment including Graphical XSD Editor, JSON Schema Editor, XML Editor, JSON Editor, WSDL Editor, XML Diff tool, Web Service tools and the worlds most advanced XML Data Binding tool to generate C++, C#, Java, VB .Net and Visual Basic 6 code from your XML Schema (XSD, XDR, DTD).
New Release - Liquid Studio v20.7.9
Fri, 26 Apr 2024 06:49:00 -0400

 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

New Release - Liquid Studio v20.7.8
Mon, 08 Apr 2024 06:47:00 -0400

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

New Release - Liquid Studio v20.7.7
Tue, 05 Mar 2024 08:50:00 -0500

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

New Release - Liquid Studio v20.7.5
Mon, 29 Jan 2024 08:04:00 -0500

 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

Converting xs:any defined XML data to JSON data
Tue, 09 Jan 2024 04:30:00 -0500

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


New Release - Liquid Studio v20.7.4
Mon, 11 Dec 2023 08:54:00 -0500

Announcing Liquid Studio v20.7.4:

  • Added missing EDIFACT CONTRL messages to Data Mapper Wizard
  • Added missing X12 997 messages to Data Mapper Wizard
  • Fixed issue with Outline Tree not highlighting current selection
  • Fixed stability issues from user exception reports
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download


How to open files in the Large File Editor
Tue, 21 Nov 2023 05:52:00 -0500

What is the Large File Editor?

The Large File Editor enables editing of very large Gigabyte or even Terabyte size files and is part of the Liquid Studio integrated development environment (IDE). It is included in the Free Community Edition of Liquid Studio.

The Large File Editor comprises a text editor view and a binary hex editor view. The text editor support XML validation and formatting and JSON validation and formatting.

Opening files in the Large File Editor

When you open a file with a known file extension (e.g. XML or JSON), the appropriate editor will be opened within Liquid Studio. If the file is of sufficient size to require the Large File Editor (as per the user settings), then the Large File Editor view will be opened instead.

You can view the Large File Editor User Settings from the menu:

Tools->Options->Editors->Large File Editor

Large File Editor Settings
Large File Editor Settings

Files with known file extensions (e.g. XML or JSON) will automatically open in the large file editor if the above criteria are met. However, as from version 20.7.3 of Liquid Studio, if you specifically want to open a file in the Large File Editor, for example, if you have a file with a non-standard file extension or want to open a file containing Binary Data, you can use the menu:

File->Open->Open In Large File Editor

File->Open->Open In Large File Editor
Open with Large File Editor

 

The Large File Editor is included in the Free Community Edition of Liquid Studio:
https://www.liquid-technologies.com/trial-download


New Release - Liquid Studio v20.7.3
Tue, 21 Nov 2023 05:34:00 -0500

Announcing Liquid Studio v20.7.3:

  • Fixed application hanging when opening files in Large File Editor
  • Fixed stack overflow issue in XML Schema Editor when adding refs as root items
  • Added ‘Open In Large File Editor’ option from File menu
  • Added ‘Navigate to Definition’ option in Graphical XML Schema Editor right click menu
  • Fixed line drawing issue in Data Mapper
  • Fixed formatting of XML when pasting open comments
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download



New Release - Liquid Studio v20.7.2
Fri, 10 Nov 2023 11:18:00 -0500

Announcing Liquid Studio v20.7.2:

  • Fixed issue when generating code from XSD containing mixed elements in Liquid XML Objects
  • General Fixes
Download a Free Trial and Free Community Version:
https://www.liquid-technologies.com/trial-download


New Release - Liquid Studio v20.7.1
Mon, 06 Nov 2023 03:45:00 -0500

Announcing Liquid Studio v20.7.1:

  • Added JSON validation and formatting support to Large File Editor
  • General Fixes

Large File Editor

The Large File Editor looks and feels like a standard text editor, but it can open and edit huge gigabyte (GB) or even terabyte (TB) size files instantly, essential for any big data projects.

As of v20.7.1, the Large File Editor will try to determine if the document content is JSON or XML and validate and format accordingly. A drop down shows which document type is selected, and allows the user to change between JSON or XML if required.

Liquid Studio - Large File Editor
Liquid Studio - Large File Editor








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