This element is not expected

An element is in the wrong place: out of order, misspelt, or not allowed there.

The message, as the validator reports it
Element 'qty': This element is not expected. Expected is ( id ).

Why it happens

  • Elements in a different order than the schema's xs:sequence requires: the order matters.
  • A misspelt name or a different letter case.
  • The element in the wrong namespace: the schema expects {urn:…}qty, the document has qty without a namespace, or the other way round.
  • An element the schema doesn't allow at all there, or one too many of it (maxOccurs).

How to fix it

The message lists what the schema expected at that point. If the expected element is there but later, reorder; if it is missing, add it before; if the names look the same, compare their namespaces.

Example

Validated against order.xsd, below. In order.xsd, id must come before qty.

Reports the error
<order currency="EUR">
  <qty>1</qty>
  <id>A-1</id>
</order>
Fixed
<order currency="EUR">
  <id>A-1</id>
  <qty>1</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>