# cvc-complex-type.2.4.d: ребёнок больше не ожидается

Родитель уже принял всё содержимое, которое допускает его модель, но затем встречается ещё один элемент. Xerces сообщает, что в этой позиции дочерние элементы больше не ожидаются. Разбор самого тега при этом может быть совершенно успешным.

Внутри batch разрешён ровно один line. Второй line превышает maxOccurs="1"; удаление случайного дубля делает учебный документ допустимым. Для настоящих данных сначала нужно выяснить происхождение каждой записи: пример не является разрешением удалять значимую информацию из производственного документа.

1. Число повторений ребёнка превышает максимум. Если maxOccurs отсутствует, по умолчанию допускается одно вхождение, а не неограниченное количество.
2. Экспортированы две взаимоисключающие ветви xs:choice. После завершения разрешённой ветви следующая может оказаться недопустимым дополнением.
3. Поле попало на неверный уровень вложенности. Данные следующей записи оказались внутри уже законченного контейнера предыдущей записи.

Посмотрите ограничения ребёнка и окружающих частиц, затем подсчитайте фактические вхождения в порядке документа. Определите место, после которого валидатор ожидает закрытие родителя. Исправьте цикл экспорта, границу контейнера или объединение источников. Проверьте настоящий многострочный образец, чтобы убедиться, что исправление сохраняет все предназначенные записи и не просто скрывает повтор.

Замена namespace не заставит завершённую модель принять дополнительного ребёнка. Ошибка URI могла повлиять на выбор предыдущей ветви, поэтому сначала разберите ранние сообщения. Когда второй line имеет то же полное имя, что и успешно принятый первый, наиболее вероятная причина связана с количеством.

Суффикс a часто позволяет назвать другое ожидаемое продолжение; суффикс d говорит, что приём детей здесь закончен. Увеличение maxOccurs меняет контракт и может скрыть случайное дублирование данных. Сопоставляйте этот выбор с требованиями получателя, прежде чем изменять XSD ради успешной проверки.


## Extra child / cvc-complex-type.2.4.d — Broken

```xml
<batch>
  <line>A</line>
  <line>B</line>
</batch>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="batch">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="line" type="xs:string" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
```

[Open broken pair](https://xsdhub.com/?example=parser-extra-child&variant=bad#workbench)

## Extra child / cvc-complex-type.2.4.d — Corrected

```xml
<batch>
  <line>A</line>
</batch>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="batch">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="line" type="xs:string" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
```

[Open corrected pair](https://xsdhub.com/?example=parser-extra-child&variant=good#workbench)

### Apache Xerces-J 2.12.2

```text
cvc-complex-type.2.4.d: Invalid content was found starting with element 'line'. No child element is expected at this point.
```

Corrected: PASS.

### .NET 8.0.33 · System.Xml.Schema

```text
The element 'batch' has invalid child element 'line'.
```

Corrected: PASS.

### XSDHub libxml2/WASM 0.7.2

```text
Element 'line': This element is not expected.
```

Corrected: PASS.

### XSDHub xmlschema 4.3.1 · XSD 1.0

```text
Unexpected child with tag 'line' at position 2.
```

Corrected: PASS.

Saxon EE was not available; no measured Saxon wording is claimed.

[All parser codes](https://xsdhub.com/learn#parser-error-codes)
[Download engine evidence](https://xsdhub.com/parser-error-examples/engine-evidence.json)
