Вы можете отключить проверку при создании XMLTYPE, подпись конструктора выглядит так:
XMLType(
xmlData IN varchar2,
schema IN varchar2 := NULL,
validated IN number := 0,
wellformed IN number := 0)
Таким образом, вы можете отключить проверку следующим образом:
extract(XMLTYPE(doc.payload, NULL, 1, 1),
'/SHOW_SHIPMENT_005/DATAAREA/SHOW_SHIPMENT/SHIPMENT/SHIPITEM/DOCUMNTREF/DOCUMENTID')
Это не поможет, хотя, если у вас есть внешняя ссылка DTD. Это все еще попыталось бы загрузить это. Разве невозможно загрузить файл DTD в репозиторий XMLDB? Это было бы самым простым решением. Если нет, то «хорошего» решения не существует, вы должны избавиться от ссылки DTD перед созданием XMLTYPE:
extract(XMLTYPE(REGEXP_REPLACE(doc.payload, '<!DOCTYPE[^<]*>', '')),
'/SHOW_SHIPMENT_005/DATAAREA/SHOW_SHIPMENT/SHIPMENT/SHIPITEM/DOCUMNTREF/DOCUMENTID')