Generar objetos de valor de ActionScript a partir de un esquema xsd
-
10-07-2019 - |
Pregunta
¿Hay alguna herramienta disponible para transformar los tipos definidos en un esquema xsd (puede o no incluir otros archivos xsd) en objetos de valor de ActionScript? He estado buscando en Google por un tiempo, pero parece que no puedo encontrar ninguna herramienta y estoy pensando si escribir una herramienta de este tipo nos ahorraría más tiempo en este momento que simplemente codificar nuestros objetos de valor a mano.
Otra posibilidad que he estado considerando es usar una herramienta como XMLBeans para transformar los tipos definidos por el esquema en clases Java y luego convertir esas clases en ActionScript. Sin embargo, me he dado cuenta de que hay alrededor de un gazillion java - > as3 convertidores por ahí y el consenso general parece ser que funcionan, es decir, no tengo idea de qué herramienta es una buena opción.
¿Alguna idea?
Solución
Para Java - > Generación AS, consulte GAS3 del proyecto Granite Data Services:
http://www.graniteds.org/ confluence / display / DOC / 2. + Gas3 + Code + Generator
Este es el tipo de cosas que también puedes escribir tú mismo, especialmente si aprovechas una herramienta como Ant y escribes una Tarea personalizada para manejarla. De hecho, trabajé en este último año y lo de código abierto:
Otros consejos
Tampoco tengo ningún tipo de traductor. Lo que hago es tener un objeto XML envuelto por un objeto ActionScript. Luego tiene un getter / setter para cada valor que convierte xml- > whatever y whatever- > XML. Sin embargo, aún debe escribir el captador / definidor, pero puede tener un identificador de macro / fragmento que funcione para usted.
Entonces, para XML como:
<person>
<name>Bob</name>
...
</person>
Luego tenemos una clase XML Object Wrapper y la ampliamos. Normalmente
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;
}
}