2009-02-05 2 views
0

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

<?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: Описание и, на мой взгляд, правильный фрагмент кода:

// Предположим, что «результат: XML» - это переменная, содержащая все мои RDF и xmlLabel метка

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

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

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

xmlLabel.text = 'тест:' + result.child (0) .child (11) .child (1);

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

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

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

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

Дэвид

ответ

1

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

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

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 
Смежные вопросы