This looks like a more general problem with attributes.
For example, changing `type="xs:boolean" default="false"` to `type="xs:short"` and `foo="true"` to `foo="1"` above gives `lxml.etree.XMLSyntaxError: Element 'root', attribute 'foo': '' is not a valid value of the atomic type 'xs:short'.`
The failures are on Python 2.7.11, libxslt 1.1.29, libxml2 2.9.4, lxml 3.7.3.
If I switch to libxslt 1.1.28, libxml2 2.9.2, lxml 3.6.4, then both examples work fine.
This looks like a more general problem with attributes.
For example, changing `type="xs:boolean" default="false"` to `type="xs:short"` and `foo="true"` to `foo="1"` above gives `lxml.etree. XMLSyntaxError: Element 'root', attribute 'foo': '' is not a valid value of the atomic type 'xs:short'.`
The failures are on Python 2.7.11, libxslt 1.1.29, libxml2 2.9.4, lxml 3.7.3.
If I switch to libxslt 1.1.28, libxml2 2.9.2, lxml 3.6.4, then both examples work fine.