Это код в DXLПротиворечивые связь между объектами
string path = "blablabla...";
Module mod = read(path, false);
Object obj = object(1337, mod);
string nameObject;
Object objectObject;
Link lnk_in;
Link lnk_out;
print "The objects for IN links:\n";
for lnk_in in obj <- "*" do
{
nameObject = source(lnk_in);
objectObject = source(lnk_in);
print identifier(objectObject) " " ;
print nameObject "_" objectObject."Absolute Number" "\n";
}
print "\nThe objects for OUT links:\n";
for lnk_out in obj -> "*" do
{
nameObject = target(lnk_out);
objectObject = target(lnk_out);
print identifier(objectObject) " ";
print nameObject "_" objectObject."Absolute Number" "\n";
}
В основном он заинтересован в печати объектов, связанных с нашим объектом OBJ что имеет данные абсолютное число, равное 1337. Я выбрал тщательно этот объект, чтобы он имел как внутренние, так и внешние связи с другими объектами. Однако, несмотря на простоту, у меня есть некоторые проблемы.
На своем собственном, выходы сценария:
The objects for IN links:
The objects for OUT links:
-R-E- DXL: <Line:25> null Object parameter was passed into argument position 1
-I- DXL: execution halted
Как вы можете заметить, существует серьезная проблема. Сценарий не возвращает внутренние объекты, несмотря на то, что obj имеет связанные внутренние объекты. В то время как для выходных ссылок я заметил, что nameObject действительно возвращает строковое имя объекта, но objectObject - это нуль.
Если второй для изменяется на:
print "\nThe objects for OUT links:\n";
for lnk_out in obj -> "*" do
{
nameObject = target(lnk_out);
objectObject = target(lnk_out);
//print identifier(objectObject) " ";
print nameObject "\n";
print nameObject "_" objectObject."Absolute Number" "\n";
}
выход становится:
The objects for OUT links:
etc...System_Req...etc
-R-E- DXL: <Line:27> null Object parameter was passed into argument position 1
-I- DXL: execution halted
Что бы быть проблема? Это не должно быть так.
Из того, что я тестировал, кажется, что с помощью мастера анализа это действительно помогло мне вывести правильные значения. –