2012-04-12 4 views
1

Учитывая следующий XML-файл:XML-файл не будет проверен

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE Clients SYSTEM "bank.dtd"> 
<Clients> 
    <account> 
     <number>323</number> 

     <client> 
      <address> 
       <street>Sliders</street> 
       <city>Tokyo</city> 
      </address> 
      <identity>1212</identity> 
     </client> 

     <client>   // HERE IS THE PROBLEM 
      <address> 
       <street>Jason</street> 
       <city>Paris</city> 
      </address> 
      <identity>1313</identity> 
     </client> 

     <totoalSum>43333</totoalSum> 
    </account> 
</Clients> 

и его DTD файл:

<?xml version="1.0" encoding="utf-8"?> 
<!ELEMENT Clients (account+)> 
<!ELEMENT account (number,client,totoalSum)> 
<!ELEMENT client (address,identity)> 
<!ELEMENT address (street,city)> 
<!ELEMENT number (#PCDATA)> 
<!ELEMENT street (#PCDATA)> 
<!ELEMENT city (#PCDATA)> 
<!ELEMENT identity (#PCDATA)> 
<!ELEMENT totoalSum (#PCDATA)> 

Я не могу получить его проверенный. XMLspy говорит:

Content model of element 'account' disallows element 'client' at this position. 

, где этим проблематичная линия обозначена «ЗДЕСЬ».

Любая идея, что может вызвать это?

С уважением

ответ

2

У вас есть 2 client элементы, входящие в account элемента. Это проблема!

Попробуйте изменить DTD с этим:

<!ELEMENT account (number,client+,totoalSum)> 
+0

Спасибо! + на самом деле способ сказать, что у меня может быть несколько клиентов? – ron

+1

Да. Вот как он определяет количество элементов, которые могут войти внутри элемента учетной записи. Один или несколько элементов ... –

+2

@ron - '+' является одним или несколькими. '*' равно нулю или больше. Если нет ни одного из них, это означает ровно одно. –

Смежные вопросы