Не удается найти объявление элемента ‘Root’ с помощью dbxml

#xml #xsd #xml-validation #berkeley-db-xml #xml-error

#xml #xsd #xml-проверка #berkeley-db-xml #xml-ошибка

Вопрос:

Я новичок в XML. Я пытаюсь импортировать XML-файл, но получаю сообщение об ошибке — «Не удается найти объявление элемента ‘Root'». Я подозреваю, что это связано с URI пространства имен (http://xmlns.oracle.com/apps/otm/DBXML ) неактивен. Я попытался перейти к URI, но он был недействительным. Поскольку именно сюда XML-файл ссылается на свои объекты, я предполагаю, что недопустимый URL-адрес означает, что файл не может найти определение для DBXML. Я попытался ввести другой URI, http://www.w3.org/2001/XMLSchema , но, похоже, это не поддерживает DBXML. Какие у меня варианты?

XML-файл

 <Root xmlns:dbxml="http://xmlns.oracle.com/apps/otm/DBXML" 
  Version="20C">
<dbxml:TRANSACTION_SET>
    <MX_SHIPMENTS DESCRIPTION="XXX XXX XXX" 
    ORDER_RELEASE_GID="XXX.XXX" 
    LOCATION_GID="XXX.XXX" 
    STOP_NUM="X" 
    ACTIVITY="X" 
    SHIPMENT_GID="XXX.XXX"/>
</dbxml:TRANSACTION_SET>
 

XML-схема

 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dbxml="http://xmlns.oracle.com/apps/otm/DBXML" targetNamespace="http://xmlns.oracle.com/apps/otm/DBXML">
<xs:import schemaLocation="dbxml-response-sample-schema1.xsd"/>
<xs:element name="TRANSACTION_SET">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="MX_SHIPMENTS" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name='Root'>
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="dbxml:TRANSACTION_SET"/>
        </xs:sequence>
        <xs:attribute name="Version" type="xs:string"/>
    </xs:complexType>
</xs:element></xs:schema>
 

Ответ №1:

По моим наблюдениям, несколько вещей:

  • у вас есть a <Root> вверху, но нет </Root> внизу.
  • откуда вы получаете эти пространства имен и чего вы от них ожидаете?
  • вы просите dbxml проверить схему, поскольку она пытается загрузить данные в базу данных? Если нет, то что именно вы пытаетесь здесь сделать?

Мое предложение состояло бы в том, чтобы полностью удалить все объявления схемы и просто использовать XML по своему усмотрению. Схемы предназначены для тех случаев, когда у вас есть точные требования к тому, как должны выглядеть данные — это может быть ваш случай, но поскольку вы новичок в XML, я бы просто начал с использования XML без схем и разбирался в схемах по мере необходимости. Существует множество отличных ресурсов для начала работы со схемами, в зависимости от вашего стека инструментов.