validation of xs:language
XML Schema states that the validation pattern for xs:language is [a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*
, however the string "en-x-low" fails to validate in xmllint
c:\>xmllint --version
xmllint: using libxml version 20708
compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv Unicode Regexps Automata Expr Schemas Schematron Modules Debug Zlib
The following XML document does not validate with xmllint --schema lang1.xsd lang.xml
but does validate in XMLspy 2019
lang1.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="root" type="mySimple"/>
<xs:complexType name="mySimple">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="lang1" type="xs:language"/>
<xs:attribute name="lang2" type="myLanguage"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="myLanguage">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z]{1,8}(\-[a-zA-Z]{1,8})*"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
lang1.xml
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="langtest1.xsd" lang1="en-x-low" lang2="en-x-high"/>