What's new in XSD 1.1

The XSD 1.1 standard builds on the XSD 1.0 adding a number of features that were conspicuous by their absence. Solving many of the problems that keep coming up in forums and discussion groups, it also remains compatible with the previous standard, meaning no need to upgrade existing schemas.Liquid Studio 2017 support XSD 1.1 as part of the graphical XML Schema editor.Summary of what’s new in XSD 1.1xs:alternative – provides value driven typing, if X=true then the element is of type Y xs:assert element – allows cross field validation via XPath predicate expressions. xs:assertion facet – allows value level validation via XPath predicate expressions. xs:openContent – enables extensibility by allowing additional elements throughout an element defaultAttributeGroup – add a group of attributes to every element defaultOpenContent – make every element extensible xCompatibility – using XSD 1.0 schemas with an XSD 1.1 validatorThe XSD 1.1 validator is compatible with the XSD 1.0 standard meaning you can pass your XSD 1.0 schemas using a XSD 1.1 validator and not notice any difference in the result.xs:alternativeProvides a mechanism for refining the type of an element based on an XPath expression. In XSD 1.0 this had to be been done explicitly using the xsi:type attribute in the XML document, but now it can be done implicitly via the schema.It sounds more complex than it is, an example will make it clearer.xs:alternative Sample<?xml version="1.0" encoding="utf-8" ?><!--Created with Liquid Studio 2017 (https://www.liquid-technologies.com)--><xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Example"> <xs:complexType> <xs:sequence> <xs:element name="Address" type="AddressType" maxOccurs="unbounded"> <xs:alternative test="@country = 'UK'" type="UKAddressType" /> <xs:alternative test="@country = 'US'" type="USAddressType" /> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="AddressType"> <xs:sequence> <xs:element name="Line1" type="xs:string" /> <xs:element name="Line2" type="xs:string" /> </xs:sequence> <xs:attribute name="country"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="UK" /> <xs:enumeration value="US" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="UKAddressType"> <xs:complexContent> <xs:extension base="AddressType"> <xs:sequence> <xs:element name="County" type="xs:string" /> <xs:element name="Postcode" type="xs:string" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="USAddressType"> <xs:complexContent> <xs:extension base="AddressType"> <xs:sequence> <xs:element name="State" type="xs:string" /> <xs:element name="ZipCode" type="xs:string" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType></xs:schema>When the following XML document is validated, the test in each xs:alternative is evaluated, and the first one to pass is used. The first Address element has a the country set to ‘UK’ this matches the test @country = ‘UK’ in the first xs:alternative, so the validation continues on using the type UKAddressType.The 3rd address has country = ‘UK’ so the UKAddressType is used, however its does not contain the correct child elements, so validation fails.<?xml version="1.0" encoding="utf-8"?><!-- Created with Liquid Studio 2017 (https://www.liquid-technologies.com) --><Example xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AlternativeExample.xsd"> <Address country="UK"> <Line1>string</Line1> <Line2>string</Line2> <County>string</County> <Postcode>string</Postcode> </Address> <Address country="US"> <Line1>string</Line1> <Line2>string</Line2> <State>string</State> <ZipCode>string</ZipCode> </Address> <Address country="UK"> <Line1>string</Line1> <Line2>string</Line2> <State>INVALID</State> <ZipCode>INVALID</ZipCode> </Address></Example>Propertiestest : The XPath expression which must evaluate to true in order for this alternative definition to be used. It is important to note that the XPath expression is limited to selecting attributes only. i.e. you can only base the expression on attribute values, you can not use it to access child elements.xpathDefaultNamespace : The default namespace used within the expression. If not specified then it is the default namespace of the containing element in the schema.xs:assertThe new xs:assert provides a mechanism for cross field validation, this makes it possible to implement complex business rules in an XSD schema, previously this kind of validation could only be accomplished in a limited sense with keyref’s, or by other tools (i.e. schematron).Although this new feature is very powerful, compromises have had to be made between performance, ease of implementation and functionality. In order to simplify implementations, and limit resources use, the XPath expression can only access nodes within the element it is attached to. In the example below, as it is attached to the paragraph element it can only access nodes within the paragraph (table/title), it can NOT access the parent element Example. The xs:assert has a attribute called test, this contains an XPath expression which is evaluated, if it does not evaluate to true, a validation error is raised.An xs:assert can be added to the following XSD entitiesxs:alternative xs:complexType xs:element Propertiestest : The XPath expression which must evalute to true for validation to be successfull.xpathDefaultNamespace : The default namespace used within the expression. If not specified then it is the default namespace of the containing element in the schema.Example xs:assert schemaThe following schema describes an assert on the paragraph element. Its basically saying if you have a table element the element before it must be a title.<?xml version="1.0" encoding="utf-8" ?><!--Created with Liquid Studio 2017 (https://www.liquid-technologies.com)--><xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Example"> <xs:complexType> <xs:sequence> <xs:element name="paragraph" type="paragraphType" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType mixed="true" name="paragraphType"> <xs:sequence> <xs:element name="title" type="xs:string" minOccurs="0" /> <xs:element name="table" type="xs:string" minOccurs="0" /> </xs:sequence> <xs:assert test="if (table) then table/preceding-sibling::title else true()" /> </xs:complexType></xs:schema>Example xs:assert sample XML documentThe following sample XML shows 3 paragraphs the first 2 are valid, the last one has a table element, but the element before is not a title (their is no element before it), so validation fails.<?xml version="1.0" encoding="utf-8"?><!-- Created with Liquid Studio 2017 (https://www.liquid-technologies.com) --><Example xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AssertSchema.xsd"> <paragraph> <title>VALID</title> <table>VALID</table> </paragraph> <paragraph> <title>VALID</title> </paragraph> <paragraph> <table>NOT OK - Missing title</table> </paragraph></Example>xs:assertion facetAssertions are a new type of facet that can be applied to xs:simpleTypes, they contain an XPath expression which must evaluate to true in order validate. They can only operate on the value of the type (they can’t access other nodes in the XML document).Propertiestest : The XPath expression which must evalute to true for validation to be successfull.xpathDefaultNamespace : The default namespace used within the expression. If not specified then it is the default namespace of the containing element in the schema.$value : Within the XPath ‘test’ expression the built in variable $value is defined which represents the value to be tested.Sample xs:assertionIn the sample bellow the xs:assertion ensures that only even values are allowed.<?xml version="1.0" encoding="utf-8" ?><!--Created with Liquid Studio 2017 (https://www.liquid-technologies.com)--><xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="EvenNumbers"> <xs:restriction base="xs:int"> <xs:assertion test="$value mod 2 = 0" /> </xs:restriction> </xs:simpleType> <xs:element name="Numbers"> <xs:complexType> <xs:sequence> <xs:element name="Number" type="EvenNumbers" /> </xs:sequence> </xs:complexType> </xs:element></xs:schema>xs:openContentOpen Content allows you to design schemas that are extensible in a way that was simply not possible in XSD 1.0. It provides a mechanism that allows additional elements to be either interleaved with existing elements or placed at the end.xs:openContent SampleIt is not unusual to want to create a schema that contains a set of defined elements, but can also contain anything else. The consuming application would then processes what it understands and ignore anything else. This seemingly simple goal is very awkward to achieve in XSD 1.0, but with the introduction of open content its simple.<?xml version="1.0" encoding="utf-8" ?><!--Created with Liquid Studio 2017 (https://www.liquid-technologies.com)--><xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Book"> <xs:complexType> <xs:openContent mode="interleave"> <xs:any namespace="##any" processContents="lax" /> </xs:openContent> <xs:sequence> <xs:element name="Title" type="xs:string" /> <xs:element name="Author" type="xs:string" /> <xs:element name="Date" type="xs:gYear" /> <xs:element name="ISBN" type="xs:string" /> <xs:element name="Publisher" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element></xs:schema>The resulting XML document now allows the inclusion of any elements before, between and after the ones defined in the XSD. In this example the element ‘NewElement’ is added in the middle. <?xml version="1.0" encoding="utf-8"?><!-- Created with Liquid Studio 2017 (https://www.liquid-technologies.com) --><Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OpenContentExample.xsd"> <Title>string</Title> <Author>string</Author> <NewElement/> <Date>2016</Date> <ISBN>string</ISBN> <Publisher>string</Publisher></Book>The mode Attributenone : Stops any open content rules being applied to this element (only relivant if a defaultOpenContent element has been applied to the whole schema).Interleave : Allows additional elements to be placed before, between and after the elements defined in the schema.suffix : Allows additional elements to only be placed after the elements defined in the schema.The xs:openContent element also requires a child xs:any which defines the type of elements that can be added (more about the changes to xs:any later).defaultAttributeGroupThis is a new attribute that can be attached to the xs:schema. When set it references an xs:attributeGroup which will be added to all the elements defined in this schema. It can be turned off on specific elements my setting the defaultAttributesApply=’false’ attribute on the given element.xs:defaultOpenContentThis is a root level open content element that is applied to all the elements defined within this schema. It can be turned off on specific elements by adding the an xs:openContent element with the attribute mode=’none’.Changes to xs:any The xs:any construct is a little more user freindly in XSD 1.1. its gained a coulple of atttributes to better control what is allowed, and it can be used a little more freely than before.notNamespace - this is a list of all the namesapces that are NOT permitted.notQName - this is a list of all the qualified element names that are NOT permitted. The use of xs:any is now a little less arduous, in XSD 1.0 the following is invalid. <xs:element name="Example"> <xs:complexType> <xs:sequence> <xs:any minOccurs="0" namespace="##any" /> <xs:element name="A" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType></xs:element>This is because the validator can not tell which rule should be applied to an element ‘A’ in the instance document. Both the any and the definition for ‘A’ would be acceptable. In order to prevent this ambiguity the XSD 1.0 rules make this construct invalid.However, in XSD 1.1 the construct is allowed as prioity is given to formally defined elements over those the would match an xs:any.SummaryThe enhancements made to the XSD standard seem fairly minor but now provide the ability to create truly extensible schemas, and support the implementation of complex business rules. For these reasons alone the XSD 1.1 standard is worth embracing, the other features are just a bonus.

Posted on: 23 March 2017 | 11:40 am

Extend Microsoft Visual Studio 2017 With Liquid Technologies XML and Web Services Tools

Press Release: Liquid Studio 2017 extends Visual Studio 2017 increasing productivity for XML and Web Service DevelopersLEEDS, UK, March 2, 2017 - Liquid Technologies have announced its support for Microsoft Visual Studio 2017, providing developers with XML and Web Services tools to facilitate streamlined development of Web and Integration systems.Liquid Technologies have provided Visual Studio tools for over a decade, and as a 2017 Sim-Ship partner show they are committed to long term support of Microsoft's new development platforms and tools."Thousands of developers have used our Visual Studio integrated tools since our initial support for Visual Studio 2005. Since then we have improved every aspect of functionality year on year and intend to do so for future platform releases." Simon Sprott, CTOThe Liquid product suite includes graphical editors for editing XML Schema (XSD) and WSDL files, and provides validation against the industry W3C standards for XSD 1.0 and XSD 1.1.The XSD Documentation Generator generates a fully interactive HTML or ASP.Net Web Site based on your XML Schema. This can be hosted on your private cloud or exposed on the internet for your developers or customers.An XPath expression builder is included which highlights matching areas of any XML document and allows you to easily generate XPath snippets to include in your C# or Visual Basic .Net code.For web service developers, the Web Service Test Client provides functionality to call any web service, such as WSDL SOAP or RESTful HTTP based web services.In addition to supporting the new Visual Studio 2017 extensions, Liquid XML tools will continue to be compatible with previous Visual Studio environments.

Posted on: 2 March 2017 | 7:50 am

Convert between XML and JSON documents and schema

XML and JSON Conversion ToolsLiquid Studio 2017 allows you to convert between XML Schema, XML Documents, JSON Schema and JSON Documents using a number of inbuilt tools.Graphical XML Schema (XSD) ViewThe image shows the Graphical XML Schema (XSD)Designer displaying the 'Bookstore.xsd' sample, which is provided as part of the default project in Liquid Studio 2017.As you can see, it has a convenient split view screen showing both the logical (Design) and physical (Source) views of the document.Create Sample XML Document ToolThe right click menu has the option to 'Create Sample XML from Item. You can also use the main Tools menu.Selecting this menu option runs a Wizard which allows you to configure how the tool should create the sample. E.g. You can choose how optional items are handle, choose to ignore errors, and select which namespaces are used.Graphical XML Document ViewWhen the tool has completed, the new XML document is displayed.Again a split view is shown and you can choose to display just the Graphical Design view, just the Source text view, or a split view showing both.Convert XML to JSON ToolWhen you have an XML document open, you can select the File->Export As JSON File option.This will display an export JSON dialog allowing you to select how the JSON file should be saved.JSON EditorYou can then open the new JSON file in Liquid Studio 2017.The JSON file is displayed in Source form and the editor provides formatting functionality, collapsible regions.Infer JSON Schema ToolWhen you have a JSON document open, you can select the Tools->Infer JSON Schema menu option. This will display a dialog allowing you to set option regarding how the JSON schema should be created.Graphical JSON Schema EditorThe new JSON Schema is displayed in the graphical JSON Schema Editor. This has the options to view a split screen showing both the logical and source views.SummaryWe have provided a brief overview of the tools available in Liquid Studio 2017, but several other conversion utilities are also included.Create Sample XML Document ToolInfer XML Schema ToolsCreate Sample JSON Document ToolInfer JSON SchemaExport XML as Fast InfosetExport XML as JSONExport JSON as XMLImport Fast Infoset as XMLImport JSON as XMLImport XML as JSONConvert DTD to XSDDownload a free trial of Liquid XML Studio to experience the full functionality of these tools and much more.

Posted on: 18 January 2017 | 10:48 am

Mapping EDI Data in Liquid Studio 2017

Liquid Studio 2017 Data Mapper provides new EDI Data Source and EDI Data Target components. Scenarios where this is useful include:Transform EDI data between different EDI versions.Extract data from an EDI document.Creating a new EDI document.Running the Data Mapper Creation Wizard allows you to select the EDI Data Source.Select the EDI Data Source optionThe following page then allows you to select the version and EDIFACT or X12 schema you wish to use.Select the EDIFACT Version and SchemaThe final page allows you to select the options used to parse the EDI documents.EDI Data Source OptionsThe Data Mapper Creation Wizard also allows you to select the EDI Data Target.Select the EDI Data Target optionYou can again select the EDIFACT or X12 schema you require along with the options used to write the EDI documents.EDI Data Target optionsYou will then see EDI Reader and EDI Writer components are added to your Liquid Data Mapper canvas. You can now start to map the fields, adding transformation components as required.E.g. The following shows a simple Upper component which will convert the incoming data to upper case:EDI Data TransformationMany other components are available to transform your data. These can be seen in the Component Palette, and are grouped into various categories.Liquid Studio 2017 - Data Mapper Component PaletteData Sources and Targets:Database, EDI, JSON, Text File, XML, Web ServiceTransformation Components: ValuesConstant ValueInput ParameterAggregateAverageCountMaxMinSumComparatorEqualGreater ThanGreater Than or EqualLess ThanLess Than or EqualNot EqualDate TimeCreate DateCreate Date TimeCreate TimeDayHourMillisecondMinuteMonthNowSecondTodayYearFileCombine PathGet Directory NameGet ExtensionGet FilenameList FilesResolve PathLogicAndFalseNotOrTrueMathsAbsAddDivideIs EvenIs OddModulusMultiplySubtractMiscAnnotationLookupSetCombineDistinctFilterFirstGet AtLastPositionSortTopStringChar To CodeCode To CharConcatEmpty To NullIndex OfJoin StringLeftLengthLowerReplaceRightSplit StringSub StringTrimTrim EndTrim StartUpperTypeCastDefault If NullIs NullNode NameNode Type You can download a free trial of the Liquid Studio 2017 - Data Mapper and test out the EDI data transformation functionality for yourself:https://www.liquid-technologies.com/trial-download

Posted on: 17 January 2017 | 10:20 am

Liquid Studio 2017 BETA

We are pleased to announce the Liquid Studio 2017 BETA is now available for download from the BETA Download page:https://www.liquid-technologies.com/beta-downloadNew features for 2017 include:NEW 64 bit SupportNEW RESTful Web Service TestingNEW Data Mapper EDI Source and Target ComponentsNEW Data Mapper JSON Source and Target ComponentsNEW Data Mapper Database Target ComponentNEW Data Mapper RESTful Web Service ComponentNEW XML Data Binder .Net Portable Class Library SupportNEW XML Data Binder .Net Core SupportPlus many improved features and fixes.64 bit SupportAll Liquid Studio tools, Liquid XML Diff, Large File Editor, Liquid Data Mapper, and Liquid XML Data Binder now run natively under 64 bit processor environments providing improved performance and memory management.Liquid StudioLiquid Studio Web Service Test Client now supports calling RESTful Web Services using WADL or User Defined Web Service calls, along with the existing WSDL/SOAP based functionality.Liquid Data MapperThe Liquid Data Mapper has been significantly improved with performance and usability enhancements and now provides support for XML, JSON, EDI, Database, Web Service, CSV and Fixed length text data sources and data targets.Liquid XML Data BinderLiquid XML Data Binder now support generating C# source code for Xamarin iOS and Android and C# and VB.Net source code for Silverlight 5 as a Portable Class Library. We have also added support for generating C# source code for .Net Core. A Nuget package is available containing the Liquid .Net Runtime library for .Net Core environment.

Posted on: 13 January 2017 | 5:57 am

Testing RESTful Web Services with Liquid Studio 2017

With the release of Liquid Studio 2017 we will see new functionality allowing you to test RESTful Web Service.Previously, the Web Service Test Client was limited to calling SOAP Web Services which could provide a WSDL (Web Service Definition Language) to describe the Web Service. This was fine for ASP.NET or WCF Web Services hosted on an IIS Web Server, but what about HTTP RESTful Web Services, maybe using Apache Web Server?Liquid Studio 2017 now supports using a WADL (Web Application Description Language) to describe the Web Service. If you don't have a WADL, you can easily create one using the new User Defined Web Service option.The User Defined Web Service option provides the ability to describe a Web Service Call by entering a Service Name, Base URI, Resource Path, Method (GET or POST) and Method Parameters. This is then saved as a WADL file for future use.This is just one of the many new features in Liquid Studio 2017. Please feel free to try out the BETA Test version.

Posted on: 13 January 2017 | 4:50 am

How to post support questions on StackOverflow

We are pleased to announce that we have embraced StackOverflow as our community support platform.StackOverflow is a great platform for sharing knowledge and by posting your questions you are helping us build a rich community resource that is both comprehensive and easily accessible. If you have a support query that fits within the Q&A style then please post it on StackOverflow using the tag 'liquid-xml'. Our support team will actively monitor this tag and will respond ASAP.Please ensure you use the 'liquid-xml' tag as shown below: If your query involves proprietary information or license keys, then you can still raise a private support ticket, but where possible we would like questions to be visible to the community so everyone can benefit from the answers.Links Create new questionhttps://stackoverflow.com/questions/ask View all tagged questionshttps://stackoverflow.com/questions/tagged/liquid-xml Search tagged questions (search term “test query”)https://stackoverflow.com/search?q=%5Bliquid-xml%5D+test+query

Posted on: 11 January 2017 | 9:07 am

Convert Empty String to Null in Data Mapper

New knowledge base article explaining "How to Convert Empty String to Null in Data Mapper" is now available.See Liquid XML Knowledge Base Article:how-to-convert-empty-string-to-null-in-data-mapper.aspxEmpty To Null Sub Function:

Posted on: 6 October 2016 | 11:16 am

New Point Release: 14.1.5.6733 (30 September 2016)

Liquid XML 2016 - New Point Release: 14.1.5.6733 (30 September 2016)Added support for INotifyCollectionChanged in Collections in XML Data Binder runtime for .Net 4.x.Fixed issues from crash reports.General Fixes.

Posted on: 30 September 2016 | 4:02 am

New Point Release: 14.1.4.6649 (22 July 2016)

Liquid XML 2016 - New Point Release: 14.1.4.6649 (22 July 2016)Added Xerces XSD 1.1 Parser option to use full XPath 2.0 checking (default on).Fixed issue with xs:error missing as simpleType in XSD 1.1 graphical designer.Fixed issue with code signing installer.General Fixes.

Posted on: 22 July 2016 | 5:24 am

New Point Release: 14.1.3.6618 (14 July 2016)

Liquid XML 2016 - New Point Release: 14.1.3.6618 (14 July 2016)Fixed DPI issues for scaled environments.Added shortcut for Comment/Uncomment.General Fixes.

Posted on: 18 July 2016 | 7:46 am

Symantec Endpoint protection is falsely reporting infected files

Symantec Endpoint protection anti-virus product is falsely reporting the threat of the SONAR.PUA!DL2 virus in the Liquid XML install. We have raised this as an issue with Symantec Technical Support on 30th June 2016. Symantec Reply:Upon further analysis and investigation we have verified your submission and, as such, the detection(s) for the following file(s) will be removed from our products:    Filename: liquidxml2016.exe    Result:     Whitelisting for above file is under process. It may take up to 72 hours to take effect. Here is an example Error Report:  Important: Please be assured that no virus exist in our products provided you always download them directly from our web site:https://www.liquid-technologies.com/trial-download Please report any future issues of this kind directly to us:https://www.liquid-technologies.com/contact-us 

Posted on: 30 June 2016 | 9:47 am

NEW JSON Schema Editor in Liquid XML 2016

NEW JSON Schema EditorWe are happy to announce Liquid XML 2016 is now available for download including a all new graphical JSON Schema Editor.The new JSON Schema Editor abstracts away the complexities of JSON Schema structure by providing an intuitive graphical drag and drop user interface.Graphical JSON Schema EditorThe Graphical JSON Schema Designer included in Liquid XML Studio massively simplifies visualizing, authoring and navigating complex JSON Schemas. The Graphical JSON Schema Editor provides an interactive logical view of the JSON Schema enabling simple and intuitive editing and validation of the JSON Schema, without compromising the ability to work with all the complexities of the Internet Engineering Task Force draft 4.0 JSON Schema Standard.Comprehensive JSON Schema ValidationSupport for the IETF draft 4.0 StandardThe JSON Schema Editor supports the IETF draft 4.0 Standard. The schema items are displayed graphically and can be edited and validated.Errors and warnings are reported via the Error Window in real time, clicking on an error selects the source of the error in the Source and Logical (graphical) view. Validate JSON Schema against the IETF draft 4.0 StandardGet a free trial download and try the JSON Schema Editor functionality for yourself.

Posted on: 18 March 2016 | 11:32 am

Liquid XML 2016 BETA Testers

It's that time again when we are looking for end user testing assistance.Download Liquid XML 2016 BETALiquid XML 2016 - BETA 2NEW Graphical JSON Schema Editor Improved features for: HTML Documentation, XML Formatting, XPath Browser, XSD Editor, XML Data Mapper, XML Sample Builder, XML Editor, XSLT Debugger, Validation Performance, Installer Performance.

Posted on: 17 February 2016 | 4:05 am

Issue Installing on Windows 10 - External exception 80000003

Happy New YearAt least it was until some of our customers pointed out that our installer had stopped working with Windows 10!On investigation, it appears a Microsoft update on 28th December caused some 3rd party software issues including stopping the Liquid XML installer from running an internal Flash video, and worse causing an exception and crash: Runtime Error in Setup Script. External exception 80000003.After been made aware of this, we have issued an updated installer (v13.2.3) to resolve this issue.Further information can be found in our knowledge base:http://support.liquid-technologies.com/kb/a73/runtime-error-in-setup-script-on-windows-10.aspxThanks to those who reported this issue. Please remember, we always welcome your feedback, good or bad.

Posted on: 5 January 2016 | 7:41 am

Visual Studio 2015 Support

Visual Studio 2015 SupportWe are pleased to announce that Visual Studio 2015 support has been added to the Liqudi product suite.Liquid XML StudioPlugins for the XSD Editor, WSDL Editor, XPath Tools now run in Visual Studio 2015.Liquid XML Data BinderAdded C++, C# and VB.Net code generation for VS2015 projects and solution files.Added C# code generation for VS2015 projects and solution files to Data Mapper.

Posted on: 28 August 2015 | 8:41 am

MySQL Database Support in Liquid XML

MySQL Database is now supported in Liquid XML Studio 2015 (v13.0.6).In order to connect to MySQL, you must first download the ADO.NET driver for MySQL called Connector/Net. This can be found at the MySQL web site: http://dev.mysql.com/downloads/connector/net/Change Data SourceOne you have installed Connector/Net, if you run the Database Connect command from inside Liquid XML Studio you will see the option to create a connection using the MySQL provider.Connection PropertiesAfter selecting the My SQL Data Source option, you will be presented with the Connection Properties dialog, allowing you to enter the connection details for the MySQL Database you wish to connect to.Database ExplorerOn creating the connection, when you look at the Database Explorer window inside Liquid XML Studio, you will see the MySQL database listed. You can expand this to display the tables and columns within the database.This database connection can now be used as a Data Source within the Graphical Data Mapper.

Posted on: 10 March 2015 | 8:59 am

Liquid XML 2015 Now Available

We are pleased to announce the launch of Liquid XML 2015.Liquid XML 2015 extends and improves on the existing functionality by introducing other new tools and technologies that our users have requested in order to continue to make Liquid XML the best value XML development environment available.Features Include:NEW Liquid XML Studio - Editor EditionNEW Data Mapper Code Generation and Database and Flat File SupportNEW JSON Text EditorNEW XML Data Binder Code Generation Support for WSDLNEW XML Data Binder Xamarin Unified API SupportNEW XML Data Binder XSD Annotations in DocumentationNEW Fixes and ImprovementsClick here to see a detailed list of new features for 2015Download Liquid XML 2015 and try it FREE Today!Liquid XML 2015 is a FREE Upgrade for users with a current Upgrade Support Protection Plan (USPP).

Posted on: 17 February 2015 | 4:33 am

Liquid XML 2015 BETA

The final BETA is now available for Liquid XML 2015.Download Liquid XML 2015 BETAThanks for all of the invaluable feedback we have received so far. We have tried to implement as many fixes and new functionality as possible to address the issues raised.What's New for 2015?Liquid XML 2015 extends and improves on the existing functionality by introducing other new tools and technologies that our users have requested in order to continue to make Liquid XML Studio the best value XML development environment available.NEW Data Mapper Code Generation and Database/Flat File SupportThe Graphical Data Mapper has been significantly upgraded to include new functionality for advanced Data Mapping.C# Data Mapping GeneratorC# source code can be generated to perform the data mapping as specified within the graphical editor.XSLT Data Mapping GeneratorXSLT source code can be generated to perform the data mapping as specified within the graphical editor.Database Source ComponentDatabase support has been added to allow you to read your source data from a database.Flat File Source ComponentFlat file support has been added to allow you to read your source data from a delimited or fixed field text file.Auto-Connect ToolNew auto-connect tool makes it easy to connect large structures of data, automatically reconciling similar names items.NEW JSON Text EditorText editor for JSON files includes color coding and code folding.XML to JSON Import and ExportImport XML as a JSON document and export it back to XML. In the same way as the existing Import JSON to XML function.NEW XML Data Binder Code Generation Support for WSDLThe Developer Edition XML Data Binding wizard now provides support for using the XSD embedded within WSDL files to generate the Data Binding library.Web Service InterfaceA new option has been added to generate a Web Service Interface in C# and VB .Net. This uses a Web Service WSDL to generate an interface which will bind directly to the web service using the Liquid Data Binding generated object library. The Wizard will also Auto-Filter the elements, only generating those required by the interface.XMLSchemaProvider AttributeA new option has been added to support the XmlSchemaProvider Attribute in C# and VB .Net. Previously if you wanted to use the Liquid Data Binding generated library in a Web Service, you had to add this support manually. The XSDs are also embedded in the generated library to support this feature, so no external web calls are required.New Fixes and ImprovementsMetro Light User InterfaceThe XML Studio now uses the Metro Light user interface style by default. The old interface can be selected form the Options dialog. Improved Memory Management and PerformanceFaster XML document load times and larger files supported in standard editor without the need for using the Large File Editor.Performance OptionsAdded options to stipulate when features will be disable as file sizes increase and at what point the Large File Editor is invoked over the standard editor.Synchronized XML ViewsClicking in the XML text view now synchronizes the XML Graphical view in the same way as the Graphical XSD editor.General ImprovementsAlong with the new features outlined above, existing features have also been enhanced and improved with functionality requested by our users.

Posted on: 27 January 2015 | 11:01 am

CDATA processing in XML Data Binding

The default option when processing CDATA is to strip away the text ![CDATA[ ... ]] leaving just the contained value. This enables you to display and use  the values without the need for parsing. You can then manually add the ![CDATA[ ... ]] text back in when you set the text (i.e. if the user has updated the value).However, if you prefer to keep the CDATA tag in the element text, you can set StripCDATA = false in the XmlSerializationContext. But you would then need to strip the CDATA tag yourself before displaying the text to the end user.E.g.In C# you would set the following:LiquidTechnologies.Runtime.Net40.XmlSerializationContext.Default.StripCDATA = falseIn C++ you would set the following:LtXmlLib12::CXmlSerializationContext::GetDefaultContext().SetStripCDATA(false);Note: This behaviour is the same for simple elements defined as string in the XSD and for extended string elements which are accessed using the PrimitiveValue member in the generated source code.See AlsoCDATA processing in XML Data Binding

Posted on: 26 September 2014 | 3:28 am

Error E2001 - The schema does not contain any 'elements' so will not generate any classes

If you run the Liquid XML Data Binder and get error E2001, it means you need to add at least 1 element in order to generate your C#, C++, Java, VB .Net or Visual Basic 6 classes.As explained in yesterdays blog Element vs complexType, you may only validate an xml document if your schema contains an element which describes each item (tag) used within the document.Wizard Error E2001MessageThe schema does not contain any 'elements' so will not generate any classes.ExplanationXml Schema elements can be considered as objects that have a type defined by the simple and complex types. So if no elements are specified in the schema, no classes will be generated as the optimiser will determine that none of the declared complexTypes will never be utilised.SolutionThe solution is to declare elements within the schema.E.g. The following Xml Schema (XSD) will not generate any classes as no elements are defined.<?xml version="1.0" encoding="utf-8"?>   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">   <xs:complexType name="Item">     <xs:sequence>       <xs:element name="Description" type="xs:string"/>       <xs:element name="Quantity" type="xs:unsignedLong"/>     </xs:sequence>   </xs:complexType>   <xs:complexType name="QuotedItem">     <xs:sequence>       <xs:element name="Item" type="Item"/>       <xs:element name="PricePerItemInPence" type="xs:unsignedLong" minOccurs="0"/>       <xs:element name="CurrentAvalibility" type="xs:unsignedLong" minOccurs="0"/>     </xs:sequence>   </xs:complexType>However, by extending the schema to define the element QuoteRequest and its associated child elements, a full class hierarchy will be generated:  <xs:element name="QuoteRequest">      <xs:complexType>       <xs:sequence>         <xs:element name="CustomerID" type="xs:string"/>         <xs:element name="Item" type="Item" minOccurs="0" maxOccurs="unbounded"/>       </xs:sequence>     </xs:complexType>   </xs:element>  </xs:schema>See AlsoElements vs complexTypes

Posted on: 9 September 2014 | 11:30 am

Element vs complexType

When to use ElementIf an instance document (xml document) requires an item named Address, then you MUST have an element defined within your xml schema named Address. Otherwise the xml document will never be valid against the schema.E.g. For the following XML Document item to be valid:<Address>…</Address>The XML Schema must define a corresponding element:<xsd:element name=”Address”>…</xsd:element>Furthermore, if other elements are allowed to act as substitute items, then the item must be declared as an element.When to use complexTypeAny time the above is not true you should consider using a complexType. Even when the above is true, you may still want to create a complexType to define the structure. This is especially true if the structure may be reused by multiple elements.E.g. If the Address structure may be used by HomeAddress and WorkAddress, you should define Address as a complexType:<xsd:complexType name=”AddressType”>…</xsd: complexType ><xsd:element name=” HomeAddress” type=”AddressType” /><xsd:element name=” WorkAddress” type=”AddressType” />Note 1: Whilst the complexType could be named “Address” is it good practice to make types distinct from elements, so here we use the name “AddressType”.Note 2: You could define AddressType as an element and use the “ref” attribute:<xsd:element name=”AddressType”>…</xsd: element > <xsd:element name=” HomeAddress” ref=”AddressType” />However, it is good practice to use complexType for the reusable building blocks that make up your document rules and use element for the actual tags that will be present within the document.Note 3: If you intend to use the “nillable” attribute, then you MUST use a complexType in the above example, as the ref and nillable attributes are mutually exclusive.

Posted on: 8 September 2014 | 6:18 am

20% Summer Discount for Liquid XML 2014

Buy Liquid XML 2014 NOW and enjoy a 20% DiscountUse Shopping Cart Discount Code: SUMMER20 See Online Shop for full details

Posted on: 1 September 2014 | 4:34 am

How to create XML Schema from XML Documents

Create XML Schema using XML documents directly from your XML Editor.Liquid XML Studio provides a great tool to enable you to infer XML Schema (XSD) from a set of XML Documents, via an easy to use Wizard user interface. This can save you hours of time when you need to define the rules for validating XML Documents which may have been provided by an external source.Along with been faster, using the tool is significantly more accurate than trying to manually work out what element and attribute values are allowed in the structure of the document.To use the wizard, follow these simple steps.Stage 1 - Select an XML Schema name and options:Stage 2 - Add sample XML Documents to help define the rules of the XML Schema:Stage 3 - Validate your XML Documents using the new XML Schema (XSD):Usage TipThe more sample XML Documents you add, the more accurate your XSD will be as the more rules for element structure and attribute values will be able to be determined by the tool.Download Liquid XML Studio free trial

Posted on: 27 August 2014 | 3:59 am

Default Proxy Settings for Large Rollouts

A new point for Liquid XML 2014 is available (12.2.1) which allows for Default Proxy Settings to be added to the registry to assist in large rollouts.Details can be found in the Knowledge Base article:http://support.liquid-technologies.com/KB/a43/automatic-activation-for-large-rollouts.aspxLiquid XML 2014 v12.2.1 is a FREE upgrade for all 2014 license holders and users with a current Upgrade Support Protection Plan (USPP).

Posted on: 3 July 2014 | 11:11 am