2009-03-11 3 views
2

Существуют ли инструменты для преобразования типов, определенных в схеме xsd (могут или не включать другие файлы xsd) в объекты значений ActionScript? Я искал это на некоторое время, но не могу найти никаких инструментов, и я размышляю над тем, как писать такой инструмент позволит нам больше времени, чем просто закодировать наши объекты ценности вручную.Создание объектов значения ActionScript из схемы xsd

Другая возможность, которую я рассматривал, заключается в использовании инструмента, такого как XMLBeans, для преобразования типов, определенных схемой, в классы Java, а затем преобразования этих классов в ActionScript. Тем не менее, я понял, что есть около gazillion java -> as3 преобразователи, и общий consesus, кажется, что они вроде работают, т. Е. Я понятия не имею, какой инструмент подходит.

Любые мысли?

ответ

4

Для Java -> AS поколение, проверить GAS3 из проекта Гранит Data Services:

http://www.graniteds.org/confluence/display/DOC/2.+Gas3+Code+Generator

Это та вещь, вы можете написать себе тоже, особенно если Вы усиливаете инструмент, такой как Ant, и написать настраиваемую задачу для ее обработки. На самом деле, я работал над этим в прошлом году и с открытым кодом его:

https://github.com/cliffmeyers/Java2As

+0

Да, я заметил GAS3 на днях, но еще не смог его попробовать. Спасибо, я приму это как ответ! –

+0

Не стесняйтесь проголосовать и меня. ЛОЛ :) –

1

У меня нет ни одного переводчика. У меня есть объект XML, обернутый объектом ActionScript. Затем у вас есть getter/setter для каждого значения, которое преобразует xml-> any и whatever-> XML. Вам все равно придется писать getter/setter, но вы можете иметь дескриптор макроса/snippit, который работает для вас.

Так что для XML, как:

<person> 
    <name>Bob</name> 
    ... 
</person> 

Тогда у нас есть класс-оболочку XML Object и расширить его. Обычно

class XMLObjectWrapper 
{ 
    var _XMLObject:XML; 

    function set XMLObject(xml:XML):void 
    { 
     _XMLObject = xml; 
    } 

    function get XMLObject():XML 
    { 
     return _XMLObject; 
    } 
} 

class person extends XMLObjectWrapper 
{ 
    function set name(value:String):void 
    { 
     _XMLObject.name = value; 
    } 

    function get name():String 
    { 
     return _XMLObject.name; 
    } 

} 
+0

Не совсем то, что я просил, я думаю, но очень интересный подход ни-менее! Спасибо, что поделился! –