работать с конкретным RDF-файлом в flex - PullRequest
0 голосов
/ 05 февраля 2009

Я все еще работаю над конкретным файлом RDF, но мне кажется, что что-то идет не так, как надо. Код моего файла RDF следующий:

<?xml version = '1.0"?>

<rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc = "http://purl.org/dc/elements/1.1/"
xmlns:dp = "http://www.telemed.uniud.it/dp/0.1/"
xmlns:dcq = "http://purl.org/dc/qualifiers/1.0/" >


<rdf:Description rdf:about="m021">
    <dc:creator>CAB</dc:creator>
    <dc:title>m021</dc:title>
    <dc:subject></dc:subject>
    <dc:date>null</dc:date>
    <dc:description></dc:description>
    <dc:identifier>1</dc:identifier>
    <dc:relation.requires rdf:resource="./20x/m02120x"/>
    <dc:relation.requires rdf:resource="./10x/m02110x"/>
    <dc:relation.requires rdf:resource="./5x/m0215x"/>
    <dc:relation.requires rdf:resource="./2.5x/m0212.5x"/>
    <dc:relation.requires rdf:resource="preview.jpg"/>
    <dp:resolution rdf:parseType="Resource">
      <dp:unit>micron</dp:unit>
      <dp:x>0.23235294</dp:x>
      <dp:y>0.23046875</dp:y>
    </dp:resolution>
    <dp:objective rdf:parseType="Resource">
      <dp:magnification>20.0</dp:magnification>
      <dp:na>0.6</dp:na>
    </dp:objective>
    <dp:imsize rdf:parseType="Resource">
      <dp:x>316</dp:x>
      <dp:y>236</dp:y>
    </dp:imsize>
</rdf:Description>

<rdf:Description rdf:about="./20x/m02120x">
    <dp:type>plane</dp:type>
    <dp:magnification>20</dp:magnification>
    <dp:matrix rdf:parseType="Resource">
        <dp:xrange>1-103</dp:xrange>
        <dp:yrange>1-86</dp:yrange>
    </dp:matrix>
</rdf:Description>

</rdf:RDF>

Я загрузил этот файл с помощью URLLoader и в своем скрипте я пытаюсь получить доступ к некоторым свойствам. Например, мне нужно получить доступ к свойству dp: x, вложенному в dp: resolution, вложенному в rdf: Description, и, на мой взгляд, правильный фрагмент кода:

// предположим, что 'result: XML' - это переменная, содержащая все мои RDF и xmlLabel метку

xmlLabel.text = 'test:' + result.Description.resolution.x;

но этот код дает мне пустой результат.

Я попробовал другой (и не элегантный) способ сделать это, пропустив следующую строку:

xmlLabel.text = 'test:' + result.child (0) .child (11) .child (1);

и этот кусок кода wokrs, давая мне значение 0,23235294 (как и ожидалось)

Мой вопрос: я делаю что-то неправильно, называя качества? Я также попробовал обозначение «двойная точка» (например, результат .. Описание) без результатов.

Возможно, проблема в том, что файл, над которым я работаю, не является допустимым файлом XML? В этом случае есть ли способ адаптировать мой RDF к допустимому XML, чтобы он работал?

Спасибо за ваши ответы

David

1 Ответ

1 голос
/ 05 февраля 2009

Привет, Дэвид (да, это я, Ченг :)). Причина, по которой у вас есть пустые результаты, заключается в том, что тег указан в пространстве имен, и вы должны указать его при доступе к тегу. Вы можете найти полезную информацию в этом уроке по гибкому обучению .

По сути, вы должны объявить переменную пространства имен, например:

var rdf:Namespace = new Namespace ("http://www.w3.org/1999/02/22-rdf-syntax-ns#");
var dp:Namespace = new Namespace ("http://www.telemed.uniud.it/dp/0.1/");

, а затем использовать его при доступе к узлам, например:

var resolution = result.ref::Description.dp::resolution
...