Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Paul Kulchenko                       2:5020/400     01 Aug 2000  22:30:12
 To : All
 Subject : Re: XML::Dumper
 -------------------------------------------------------------------------------- 
 
 Hi, Alexander!
 
 Alexander Temerev wrote:
 
 >  Появилась нужда в модуле XML::Dumper, который бы преобразовывал объекты в
 > XML. Примерно так: package MyObject; sub new { my $name=shift; my
 > $r_self={"foo" => "bar",             "number" => "3.14",             "list" =>
 > [1,2,3],             "hash" => {"dot" => "com", "cot" => "dom"},            
 > "OtherObject" => new OtherObject}; bless $r_self,$name; return $r_self; } my
 > $object=new MyObject; my $xml=XML::Dumper->process ($object);  Должно
 > получиться что-то вроде: <?xml version="1.0"?> <MyObject foo="bar"
 > number="3.14">  <list>1</list>  <list>2</list>  <list>3</list>  <hash
 > dot="com" cot="dom"/>  <OtherObject>     ...  </OtherObject> </MyObject> 
 > Прежде чем самому взяться за написание, хотелось бы выяснить - не изобрел
 > ли кто велосипед до меня? В идеале это должно работать в обе стороны - то бишь
 > делаем XML::Dumper->fetch ("кусок XML кода") - и получаем свеженький объект. А
 > если бы он еще и DTD пытался создавать, так это вообще было бы чудесно... Если
 > такого нет, я берусь за его написание. Для чего такое нужно, думаю, очевидно
 > :)
 
 ну, во-первых, IMHO, такое преобразование не совсем корректно. В смысле,
 трудно обобщается. Во-вторых, я бы хотел обобщить задачу, поскольку тоже
 этим занимаюсь. Мне бы хотелось иметь общую схему сериализации (и
 десериализации, естественно), причем в нескольких вариантах. Hапример: 
 1. 
 
 in:
 %var = ('a' => 'value_a', 'b' => 'value_b') 
 
 out:
 <var>
   <a>value_a</a>
   <b>value_b</b>
 </var>
 
 2. 
 
 in: 
 $a = 'value_a';
 $b = 'value_b';
 @var = ($a, $b);
 
 out:
 <var>
   <a>value_a</a>
   <b>value_b</b>
 </var>
 
 не реализуемо? имя переменной не достать, даже если передавать по
 ссылке.
 java сериализатор такое делает, правда я не копался как.
 
 3.
 
 in:
 $a = name 'a' => 'value_a'; # здесь возвращаются объекты, несущие
 информацию о 
 $b = name 'b' => 'value_b'; # имени и типе переменной (тип нужен для
 SOAP)
 @var = ($a, $b);
 
 out:
 <var>
   <a>value_a</a>
   <b>value_b</b>
 </var>
 
 такая схема должна работать и мне она нравится больше, чем 1., но
 поддерживать желательно обе.
 
 Какие есть еще варианты для СИHТАКСИСА сериализации? Кроме имени (мне)
 еще нужно хранить информацию о типе переменной, или по крайней мере дать
 возможность указывать этот тип опционально. То, что сделано в
 XML::Dumper мне к сожалению не подходит, поскольку SOAP накладывает
 специфические ограничения. Есть идеи по этому поводу?
 
 Best wishes, Paul.
 --- ifmail v.2.15dev5
  * Origin: Rostelecom/Internet Centre (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: XML::Dumper   Paul Kulchenko   01 Aug 2000 22:30:12 
Архивное /ru.perl/3555751da17e.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional