При десериализации в XML-документе произошла ошибка - PullRequest
4 голосов
/ 27 апреля 2010

Я получаю сообщение об ошибке при десериализации XML-документа в объект. Как это можно решить?

Ошибка в XML-документе (5, 14)

Это документ XML:

<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FirstName>Khaled</FirstName>
  <LastName>Marouf</LastName>
</Customer><?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FirstName>Faisal</FirstName>
  <LastName>Damaj</LastName>
</Customer><?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FirstName>Lara</FirstName>
  <LastName>Khalil</LastName>
</Customer>

Ответы [ 4 ]

10 голосов
/ 27 апреля 2010

Ваш XML-документ - это фактически три документа. Допустимый документ XML должен иметь, например, только один корневой узел . Кроме того, декларации XML недопустимы внутри документа.

Это действительный XML (объявление XML идет первым, один корневой элемент):

<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FirstName>Khaled</FirstName>
  <LastName>Marouf</LastName>
</Customer>

Это недопустимый XML (несколько корневых элементов, декларация xml внутри документа):

<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FirstName>Khaled</FirstName>
  <LastName>Marouf</LastName>
</Customer><?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FirstName>Faisal</FirstName>
  <LastName>Damaj</LastName>
</Customer>
8 голосов
/ 27 апреля 2010

Чтобы расширить на ответ Фредрика Мёрка , ключ к сообщению находится в сообщении об ошибке: (5, 14) относится к номеру строки и номера столбца, где анализатор считает, что проблема. Здесь это указывает на второе объявление XML, которое, как уже упоминалось, недопустимо.

0 голосов
/ 27 апреля 2010

Попробуйте это ...

<?xml version="1.0"?>
<ArrayOfCustomer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Customer>
    <FirstName>Khaled</FirstName>
    <LastName>Marouf</LastName>
  </Customer>
  <Customer>
    <FirstName>Faisal</FirstName>
    <LastName>Damaj</LastName>
  </Customer>
  <Customer>
    <FirstName>Lara</FirstName>
    <LastName>Khalil</LastName>
  </Customer>
</ArrayOfCustomer>
0 голосов
/ 27 апреля 2010

Добавьте корневой элемент для ваших элементов Customer.

...