Я ничего никогда не должен был делать вполне как это, но могло бы быть возможно сделать то, что Вы хотите сделать путем записи пользовательского средства выделения, которое использует файлы с отображенной памятью для поддержки данных.
См. повышение:: межпроцессы для документов об их простой в использовании реализации файлов с отображенной памятью, эта статья доктора Dobbs для детального обсуждения записи средств выделения, и этот столбец IEEE Software для описания проблемы и пример кода .
]Каталог XML - это путь сюда, он просто требует немного больше настойчивости.[
] []Как Вы правильно заметили, стандартный тип Ant []
] позволяет Вам указывать только публичные DTD ссылки при использовании встраиваемого синтаксиса, что не имеет для Вас никакого смысла. Однако, []
] также позволяет Вам указать стандартный OASIS-синтаксический каталог, который намного богаче, включая разрешение SYSTEM DTD ссылок.[
]Каталог OASIS (полная спецификация []здесь[]) выглядит следующим образом:[
] [<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<system systemId="mydtd.dtd" uri="project/path/to/mydtd.dtd"/>
</catalog>
]
[]Вы можете ссылаться на этот каталог из []
]:[
<xmlcatalog refid="commonDTDs"/>
<catalogpath>
<pathelement location="path/to/oasis.catalog"/>
</catalogpath>
</xmlcatalog>
]
[]И всё. Хорошей идеей является создание многоразового файла каталога OASIS, и обращение к нему из различных XML-связанных задач Ant, все из которых могут использовать []
].[
Вы пробовали:
<!DOCTYPE data SYSTEM "./path/to/mydtd.dtd">
? Или абсолютный путь?
Вы также можете найти
описание здесь .
]xmltask не находит его, потому что ищет в текущей рабочей директории. Ant позволяет указать базовый каталог, используя атрибут []basedir[
] элемента []
]. Поэтому я предлагаю Вам попробовать следующее:[
<target basedir="path/to" ...>
<xmltask...
</target>
]
[]Мне кажется, что это не XML/DTD, с которым у Вас действительно есть проблема, а получение xmltask для взаимодействия с двумя из них, как Вы хотите.[
] []Если это не удастся, Вы можете использовать задачу Ant Copy для копирования XML и DTD в корневую папку перед обработкой с помощью xmltask, а затем скопировать их обратно.[
].Как альтернатива, похоже, что я могу пропустить всю проверку, создавая пустой файл с тем же именем, что и файл DVD, а затем удаляя файл, когда я закончу. Шансы я собираюсь пойти на этот маршрут вместо того, чтобы использовать каталог.