Я пытаюсь импортировать RDF-файл в хранилище AllegroGraph, но постоянно получаю эту ошибку:
Import failed: MALFORMED DATA: [in Sax parser] parse of #<file-simple-stream #P"/tmp/agwebview-upload-EoncCgvalid.xml" for input pos 3 @ #x100413feb2> failed filename nil, position 1
Мой файл, называемый «valid.xml», должен быть действительным, поскольку он исходит из http://rdf.freebase.com/rdf/venture_capital.views.investment_round и я добавил это в начале:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:fb="http://www.my.com/site" xmlns:xhtml="http://www.my.com/xhtml" xmlns:cc="http://www.my.com/cc">
Почему вы добавили это в начало? Это уже начинается:
<?xml version="1.0" encoding="utf-8"?> <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:fb="http://rdf.freebase.com/ns/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xhtml="http://www.w3.org/1999/xhtml/vocab#" >
чтобы ваше добавление сломало файл.
Чтобы увидеть это попробуйте, например:
$ curl -s http://rdf.freebase.com/rdf/venture_capital.views.investment_round | head <?xml version="1.0" encoding="utf-8"?> <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:fb="http://rdf.freebase.com/ns/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xhtml="http://www.w3.org/1999/xhtml/vocab#" > <fb:common.document rdf:about="http://rdf.freebase.com/ns/venture_capital.views.investment_round"> <cc:attributionName>Source: Freebase - The World's database</cc:attributionName> <xhtml:license rdf:resource="http://creativecommons.org/licenses/by/3.0/"/>
Или, что еще лучше, Служба проверки W3C RDF : Проверка данных бесплатной базы
Файл, размещенный на сайте freebase, действителен, вам не нужно его менять.
Вы можете подтвердить это с помощью инструмента "рэппер":
$rapper -c -i rdfxml http://rdf.freebase.com/rdf/venture_capital.views.investment_round рэппер: разбор URI http://rdf.freebase.com/rdf/venture_capital.views.investment_round с анализатором rdfxml рэппер: разбор возвратил 16 троек