cvc-type.3.1.3: The value of element is not valid
The text of an element does not satisfy its type; the message before it says why.
cvc-type.3.1.3: The value 'two' of element 'qty' is not valid.
Why it happens
- It always follows a more specific message about the same value: cvc-datatype-valid.1.2.1 for a wrong format, or a facet such as cvc-enumeration-valid, cvc-pattern-valid or cvc-maxLength-valid.
How to fix it
Fix the reason given in the previous message; this one only adds which element held the value. The two count as one problem. If you only see this one, your error handler or log is dropping the first.
Java's schema validation (javax.xml.validation.Validator, and JAXB or Spring on top of it) throws at the first error unless you set an ErrorHandler whose error() records the SAXParseException and carries on; each one has getLineNumber() and getColumnNumber(). A well-formedness error ends parsing whatever the handler does.
The same problem in xmlvalid
xmlvalid validates with libxml2, which reports it as Is not a valid value of the atomic type. It checks the whole document in your browser and lists every schema error with its line and column, not only the first.
Element 'qty': 'two' is not a valid value of the atomic type 'xs:int'.
Example
Validated against order.xsd, below.
<order currency="EUR">
<id>A-1</id>
<qty>two</qty>
</order>
<order currency="EUR">
<id>A-1</id>
<qty>2</qty>
</order>
order.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="order">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:string"/>
<xs:element name="qty" type="xs:int"/>
<xs:element name="status" type="Status" minOccurs="0"/>
<xs:element name="code" type="Code" minOccurs="0"/>
<xs:element name="note" type="Short" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="currency" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="Status">
<xs:restriction base="xs:string">
<xs:enumeration value="open"/>
<xs:enumeration value="paid"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Code">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{3}-[0-9]{4}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Short">
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>