Прошу вашей помощи. Есть простейшее описание товара яндекс маркета (указаны только обязательные поля)
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2010-04-01 17:00">
<shop>
<name>Magazin</name>
<company>Magazin</company>
<url>http://www.magazin.ru/</url>
<currencies>
<currency id="RUR" rate="1" plus="0"/>
</currencies>
<categories>
<category id="1">Часы</category>
</categories>
<local_delivery_cost>300</local_delivery_cost>
<offers>
<offer id="12346" available="true" bid="21">
<price>600</price>
<currencyId>RUR</currencyId>
<categoryId>1</categoryId>
<name>Наручные часы Casio A1234567B</name>
</offer>
</offers>
</shop>
</yml_catalog>
Вот часть dtd-схемы, которая отвечает за валидацию тега offer:
<!ELEMENT offer
(
url?, buyurl?, price, wprice?, currencyId, xCategory?, categoryId+, market_category?, picture*, store?, pickup?, delivery?, deliveryIncluded?, local_delivery_cost?, orderingTime?,
(
(typePrefix?, vendor, vendorCode?, model, (provider, tarifplan?)?) |
(author?, name, publisher?, series?, year?, ISBN?, volume?, part?, language?, binding?, page_extent?, table_of_contents?) |
(author?, name, publisher?, series?, year?, ISBN?, volume?, part?, language?, table_of_contents?, performed_by?, performance_type?, storage?, format?, recording_length?) |
(artist?, title, year?, media?, starring?, director?, originalName?, country?) |
(worldRegion?, country?, region?, days, dataTour*, name, hotel_stars?, room?, meal?, included, transport, price_min?, price_max?, options?) |
(name, place, hall?, hall_part?, date, is_premiere?, is_kids?) |
(name, vendor?, vendorCode?)
),
aliases?, additional*, description?, sales_notes?, promo?, manufacturer_warranty?, country_of_origin?, downloadable?, adult?, age?, barcode*, param*, related_offer*
)>
Я пытаюсь отвалидировать данный документ с помощью утилиты xmllint:
xmllint --valid --noout ~/XML/test321.yml
На что получаю следующую ошибку:
Content model of offer is not determinist.
Может быть вы заметите что не так в документе, что он не может пройти валидацию. Если не верите, можете скачать с яндекса shop.dtd и попытаться отвалидировать их, якобы, валидный пример. У меня не получилось (:
Заранее премного благодарен за любую попытку помочь.