2010-04-27 8 views
4

Я получаю сообщение об ошибке при десериализации XML-документа в объект. Как это можно решить?Ошибка в документе 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> 
+0

Не могли бы вы использовать функцию "Code Sample", чтобы мы могли видеть фактические теги XML? –

+0

Опубликуйте свой код vb.net и ошибку, иначе мы просто ловим рыбу здесь. – Prutswonder

ответ

10

Ваш 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> 
0

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

8

Чтобы развернуть на Fredrik Mörk's answer, ключ находится в сообщении об ошибке: (5, 14) ссылается на номер строки и номер столбца, где парсер считает проблему. Здесь это указывает на второе объявление XML, которое, как было упомянуто, не разрешено.

0

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

<?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>