PDA

Просмотр полной версии : xml data binding


mip
04.12.2007, 12:24
re all!
Вобщем возникла такая задача:
хотелось бы найти тулс который бы генерил классы
actionscript 3 из XML Scheme (XSD), т.е. осуществляя mapping
xsd и as3, для дальнейшего использования в xml data bindingю
т.е.
из
xsd
примерно такого содержания:

<xsd:element name="Op1Response" type="xsd:string" />

<xsd:element name="Op1Request" type="tns:OpType" />
<xsd:complexType name="OpType">
<xsd:sequence>
<xsd:element name="c1" type="xsd:string"/>
<xsd:element name="c2" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>


должен получиться файл actionscript 3 примерно такого содержания:

public class OpType {

private String c1;
private String c2;

public String getC1() {
return c1;
}

public void setC1(String val) {
c1 = val;
}

public String getC2() {
return c2;
}

public void setC2(String val) {
c2 = val;
}

}

процесс получения значений из xml - заключен в методах сгенереного класса и не показан :)


для чего нужно: http://www.codesynthesis.com/products/xsd/reasons.xhtml
аналог для c++: http://www.codesynthesis.com/products/xsd/

какие есть аналоги для actionscript 3?

BlooDHounD
04.12.2007, 12:38
синтаксис с джавой не путаете? :)

screamge
04.12.2007, 13:07
mxmlc компилер? :)

mip
04.12.2007, 13:31
2 BlooDHounD:
ну я дернул просто из инета первый попавшийся пример, чтобы продемонстрировать наглядно так сказать :)
2 screamge:
а попадробнее?
я конечно склонялся к этому ответу -
но скажите - возможно ли там приделать элементы которые не входят в схему определенную для mxml
Как я понимаю mxml - это просто обычный xml который пользуется схемой определенной в adobe.
Мне же надо как раз приделать генерацию такой схемы в as,
для определения элементов которые не входят в схему mxml

mip
04.12.2007, 14:07
вобщем поюзал чуток flex,
теперь уточню предыдущий вопрос:
можно ли и как сделать custom element базирующийся на моем классе,
не унаследованном от UIComponent?

BlooDHounD
04.12.2007, 14:47
а может хелп ещё посмотреть?

mip
04.12.2007, 15:15
мне более приятнее будет узнать ответ от вас , нежели от хелпа :)

BlooDHounD
04.12.2007, 18:49
а мне приятнее, когда собеседник хоть как-то пытается учится, а не тупо ждёт пока ему бросят рыбку как дресерованному тюленю, но хорошее поведение.

mip
05.12.2007, 10:09
итак мои эксперименты привели к такому результату
// ActionScript file x.as

package net{

import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class x
{
public var ayyyy:int = 0;
}
}

mxml файл
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="net.*" layout="absolute">
<mx:constraintRows>
<mx:ConstraintRow id="Application1_row1" height="25.8%"/>
<mx:ConstraintRow id="Application1_row2" height="74.2%"/>
</mx:constraintRows>
<mx:ComboBox x="190" y="144"></mx:ComboBox>

<x>
<ayyyy>23</ayyyy>
</x>
</mx:Application>


все нормально, осталось только два вопроса
1. (не очень важно) Как сделать чтобы мой компонент x - отображался на вкладке компоненты (в ветке custom component) ?
2. (критично) Как из actionscript взаиводействовать с mxml ?
Имеется ввиду описание как это должно работать, кто что вызывает, кто куда ссылается, кто кого запускает - хотябы вкратце

BlooDHounD
05.12.2007, 10:26
в хелпе кстати почти на первой странице, написано, и даже очень подробно.

etc
05.12.2007, 10:34
Раз уж мы подошли к флексу, то туда и переедем.

mip
05.12.2007, 11:00
да хоть бы ссылку дали чтоли...
в каком хелпе? какая тема?
не не ... основной вопрос про as .

итак по первому вопросу, ответ нашелся
Nonvisible components, such as effects, formatters, and validators, are not listed in the Components view. You must insert these components in the code.


У меня такое впечетление что я разговариваю сам с собой.

screamge
05.12.2007, 13:23
Вы понимаете что в исходном файле, т.е. swf никакого mxml'a нет?

mip
05.12.2007, 14:48
да, вроде как понимаю... хотя мне это может только казаться :)
mxml парсится компилером и тот создает
теже actionscript классы, которые в конечном итоге превращаются в байткод.
P.S. а какое отношение это имеет к теме?
давайте говорить прямо, а не какимито намеками пожалуйста