Я хочу импортировать XML-документ в Microsoft Access 2010. Вот пример из XML:
<ROWSET>
<BIOG>
<BIOG_NBR> 10021616 </BIOG_NBR>
<FIRST_NAME> Marvin </FIRST_NAME>
<LAST_NAME> Rumple </LAST_NAME>
<ADDRESS_LIST>
<ADDRESS_TYP>
<ORG1> UNICEF </ORG1>
<ADDRESS_TYPE>Work </ADDRESS_TYPE>
<LINE_2> 23322 Bovine Blvd </LINE_2>
<US_ZIP> 770303411 </US_ZIP>
<CONTACT_LIST/>
</ADDRESS_TYP>
<ADDRESS_TYP>
<ORG1> MENSA </ORG1>
<ADDRESS_TYPE>Leisure </ADDRESS_TYPE>
<LINE_2> 421 Porcine Lane </LINE_2>
<US_ZIP> 770303411 </US_ZIP>
<CONTACT_LIST/>
</ADDRESS_TYP>
</ADDRESS_LIST>
</BIOG>
Это правильно оформленный документ XML. У него есть документ определения DTD
, но я удаляю объявление, потому что импорт Access не примет его. <ROWSET>
является корневым элементом. Мой пример упрощен - восемь схем представлены в схеме.
Когда я импортирую это, я получаю две таблицы, BIOG
и ADDRESS_TYP
. Но ADDRESS_TYP
не показывает внешний ключ BIOG_NBR
.
Как я могу внести это? Некоторые способы, которые происходят со мной:
- Используйте текстовый редактор с регулярными выражениями для вставки
<BIOG_NBR>____</BIOG_NBR>
сразу после каждого экземпляра<ADDRESS_TYP>
. Это не элегантно, и, поскольку размер файла составляет 200 МБ, это может быть нецелесообразно. - Используйте другой анализатор XML для экспорта всех данных в CSV-файлы. Это будет мой первый вариант, но я нахожусь под рабочими ограничениями, которые исключают его.
- Используйте какое-то преобразование, например
XSD
. Я использовал этот подход для рендеринга в HTML, но относится ли он к этой задаче? (И потом, разве мне не нужен анализатор XML? Очевидно, да ...) - Используйте библиотеку Microsoft XML в VBA. (Это относится?)
В двух словах: Должен ли я обратиться к собственному инструменту XML, как в варианте № 3?Есть ли другой подход, который я пропускаю?