Генерация объектов значений ActionScript из схемы xsd - PullRequest
2 голосов
/ 11 марта 2009

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

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

Есть мысли?

Ответы [ 2 ]

4 голосов
/ 15 марта 2009

Для генерации Java -> AS, ознакомьтесь с GAS3 из проекта Granite Data Services:

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

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

https://github.com/cliffmeyers/Java2As

1 голос
/ 11 марта 2009

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

Так для XML, как:

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

Затем у нас есть класс XML Object Wrapper и мы расширяем его. Обычно

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;
    }

}
...