- From: Steve Underwood <steveu@coppice.org>
- Date: Wed, 8 Jun 2016 19:02:14 +0800
- To: xmlschema-dev@w3.org
Hi, DLMS is a communications protocol for Smart Grid applications. At http://www.dlms.com/documentation/cosem-xml-representation/index.html there is an XSD file for the XML representation of DLMS. In this file can be found the following snippet: <xsd:complexTypename="InitiateRequest"> <xsd:sequence> <xsd:elementname="dedicated-key" minOccurs="0" type="xsd:hexBinary"/> <xsd:elementname="response-allowed" default="true" type="xsd:boolean"/> <xsd:elementname="proposed-quality-of-service" minOccurs="0" type="Integer8"/> <xsd:elementname="proposed-dlms-version-number" type="Unsigned8"/> <xsd:elementname="proposed-conformance" type="Conformance"/> <xsd:elementname="client-max-receive-pdu-size" type="Unsigned16"/> </xsd:sequence> </xsd:complexType> By the DLMS protocol definition, the first 3 items in that sequence should be optional. The minOccurs="0" elements cause items 1 and 3 to be correctly treated as optional. However, with the parsers I have tried (e.g. libxml2) the second item is handled as a required element. From reading the XSD spec it seems that second item should contain minOccurs="0", because that is the only way to make items optional. I suspect someone has incorrectly assumed that default="true" makes the item optional, but I see nothing in the XSD spec to support that. Can any XSD expert comment on this? Regaards, Steve
Received on Wednesday, 8 June 2016 13:12:46 UTC