Traduzca

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिनà¥à¤¦à¥€ अनà¥à¤µà¤¾à¤¦ करने के लिà¤/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
Imagen de comenzar Google Maps API 3
Imagen del desarrollo de aplicaciones sin hilos androide
Imagen de XSLT 2.0 y de la referencia de programador de XPath 2.0 (programador al programador)
Imagen del desarrollo del núcleo del linux (3ro edición)

Lenguaje de interrogación de XAM

Así como el abastecimiento de medios de la vendedor-independiente de crear, recuperando, modificando y suprimiendo XSets, la especificación de SNIA XAM v1.0 también define un lenguaje de interrogación (XAM QL), basado en un subconjunto de la lengua del SQL, porque de seleccionar y de recuperar el XUIDs de XSets basado en criterios contenido-definidos.

El sistema de las palabras reservadas para este lenguaje de interrogación es absolutamente pequeño: seleccione, donde, y, o, no, como, existe, el atar, inalterable, typeof, longitud, fecha, VERDADES, FALSOS, antes de que, después de, contenga, y dentro. Por diseño, las preguntas de XAM parecen una declaración selecta del SQL. El lenguaje de interrogación es sin diferenciación entre mayúsculas y minúsculas y utiliza el juego de caracteres de ASCII.

Aquí está un ejemplo de una pregunta simple de XAM:

select ".xset.xuid" where "com.example.name" = ’Tuckers Plantation'


La versión 1.0 de la especificación de XAM define dos niveles de ayuda del lenguaje de interrogación, el nivel 1 es decir del nivel 1 y del nivel 2. define preguntas en características y cualidades de campo en XSets y es obligatorio. Cualquier valor de una propiedad de XSet que sea accesible a un programa de aplicación vía la biblioteca de XAM puede ser preguntado. El nivel 2 prolonga el nivel 1 a las preguntas de la ayuda en XStreams y es opcional. Ambos niveles de pregunta están alcanzados a través de un tipo solo, definido del trabajo que todos los abastecedores de XAM deban apoyar. Puesto que ninguÌn vendedor que soy consciente de tiene preguntas del nivel realmente ejecutado 2, el resto de los focos de este poste en preguntas del nivel 1.

Una instrucción del lenguaje de interrogación de XAM consiste en una cláusula selecta obligatoria seguida por un opcional donde cláusula. Para XAM v1.0 la única cláusula selecta válida es el `selecto .xset.xuid'. Esto especifica que el uso está pidiendo una lista de valores de XUID. Por ejemplo

select ".xset.xuid "


devolverá una lista de cada XSet que sea legible a la hora de la pregunta.

Donde la cláusula se utiliza para especificar un subconjunto de XSets que se emparejará. Para las preguntas del nivel 1 se restringe a las comparaciones entre las características de XSet y los valores y/o las cualidades de campo literales y los valores literales.

select ".xset.xuid" where ".xam.time.xuid" > date(’2009-02-01T00:00:00.0’)


devolverá la lista de todo el Xsets que fueron creadas encendido o después del 1 de febrero de 2009.

Las demostraciones siguientes de la tabla que colocan y los tipos literales pueden ser comparados válido.

xam_intxam_doubleel xam_stringxam_datetimexam_xuid
internacional**
doble**
secuencia*
fecha y hora*
XUID*

La biblioteca de XAM valida que las secuencias y los liberales de las secuencias son las secuencias de conformación UTF-8. Los literales de cadena no conformes UTF-8 generan un error de sintaxis no fatal de la pregunta de XAM. Las ediciones tales como solo contra caracteres múltiples del glyph y caracteres no imprimibles están sin especificar y son puesta en práctica y dependientes de la aplicación. Las comparaciones de la secuencia son con diferenciación entre mayúsculas y minúsculas y los operadores de comparación funcionan encendido una base del octeto-por-octeto. Para los operadores emparentados las relaciones son definidas por los valores del octeto. Toda la normalización de los datos es la responsabilidad del uso.

Las semencias de escape apoyadas son las siguientes. Cualquier otra semencia de escape generará un error no fatal.

\ \Barra (\)
\ Cotización doble (")
\ 'Apóstrofe (')
\ uxxxxUn carácter de Unicode en formato hexadecimal (xxxx)

Los literales de cadena se deben cotizar con apóstrofes. Los literales de cadena que contienen uno o más caracteres del apóstrofe deben escapar cada carácter del apóstrofe usando una barra. Por ejemplo, el literal de cadena de 'esto es un literal de la secuencia sería representado en una pregunta como
select ".xset.xuid" where "com.example.string-property" = ’This is a string literal’


Para utilizar un apóstrofe en una secuencia, guárdela con una barra

select ".xset.xuid" where "com.example.claimed.ownership" = ’Tucker\’s’


Todos los casos de los nombres de campo en una secuencia de la pregunta de XAM se deben cotizar con cotizaciones dobles. Si un nombre de campo contiene caracteres de la cotización doble, cada carácter de la cotización doble se debe escapar usando una barra. Por ejemplo, el nombre de campo para la característica xam_boolean com.example. el qstring se debe representar en una pregunta como

select ".xam.xuid" where "com.example.\"qstring\"" = TRUE


Si un nombre de campo contiene un carácter de la barra, la barra sí mismo se debe escapar con otra barra. Por ejemplo, el nombre de campo para la característica xam_double com.example.file \ cociente se debe representar en una pregunta como

select ".xam.xuid" where "com.example.file\\ratio" = 100.1


El lenguaje de interrogación acepta fecha y hora y los literales XUID-valorados usando las funciones del selector fechan () y xuid () respectivamente. La función de la fecha () toma un valor correctamente formado de la fecha y hora, especificado pues una secuencia literal que sea constante con la especificación de la fecha y hora de XAM.

select ".xset.xuid" where ".xam.time.xuid" = date(’2009-06-01T00:00:00.0’)


La función del xuid () cuenta con un XUID que esté bajo la forma de literal de cadena codificado base64. Un literal de cadena incorrectamente formado genera un error no fatal durante el análisis de la pregunta.

Las cualidades de campo están alcanzadas usando existen, typeof, inalterable, atascamiento, y las funciones del accessor de la cualidad de campo de la longitud. Existen () las pruebas de función para la existencia de una cualidad de la zona variable (característica) en un XSet. Evalúa PARA VERDAD si un XSet contiene la zona variable que evalúa de otra manera FALSO.

select ".xset.xuid" where exists("com.example.name")


La función del typeof () vuelve el tipo del MIME de una zona variable en un XSet que sea una característica secuencia-valorada.

select ".xset.xuid" where typeof("com.example.data") = ’text/plain’
select ".xset.xuid" where typeof("com.example.data") like ’text%’


Esta función puede ser utilizada siempre que un uso podría utilizar una referencia del campo a una característica secuencia-valorada. Observe que las comparaciones con cualquier valor literal de la no-secuencia generan un error no fatal durante el análisis de la pregunta.

() La función inalterable evalúa PARA VERDAD cuando un campo en un XSet se marca como inalterable.

select ".xset.xuid" where readonly("com.example.flag")
select ".xset.xuid" where not readonly("com.example.name")


() La función obligatoria evalúa PARA VERDAD cuando un campo en un XSet se marca como atando.

select ".xset.xuid" where binding("com.example.case_id")
select ".xset.xuid" where not binding("com.example.subject")


La función de la longitud () vuelve la longitud, en octetos, de una zona variable.

select ".xset.xuid" where length("com.example.data") > 1024


Cuando está utilizado en característica coloca vueltas de esta función la longitud según lo definido para los stypes. Observe que esta función no se debe utilizar para comparar el número de caracteres en una secuencia mientras que esta comparación depende de la codificación del carácter que es utilizada.

Torneado ahora a los operadores lógicos. Subclauses dentro del donde la cláusula puede ser combinada y ser modificada usando a los operadores lógicos y, o y no. Estos operadores son similares a sus contrapartes del SQL.

Y operador requiere ambos subclauses evaluar PARA VERDAD antes incluyendo un XSet en los resultados. Por ejemplo

select ".xset.xuid" where typeof("com.example.stream") = ’image/gif’ and length("com.example.stream") > 4096


selecciona solamente eso XSets que contiene las imágenes del GIF cuyo tamaño es mayor de 4096 octetos. U operador evalúa PARA VERDAD si cualquier subclause evalúa PARA VERDAD. Por ejemplo

select ".xset.xuid" where typeof("com.example.stream") = ’image/jpeg’ or typeof("com.example.stream") = ’image/gif’


selecciona solamente eso XSets que contiene una corriente nombrada del tipo JPEG o GIF de la imagen. No el operador niega una expresión boleana. Por ejemplo

select ".xset.xuid" where not binding("com.example.property")


selecciona todo el XSets con la característica nonbinding com.example.property.

Como en ciertos operadores del SQL tome la precedencia sobre otros operadores en preguntas. La precedencia de operador de XAM QL es como sigue:

PRECEDENCIAOPERADOR
1existe, inalterable, typeof, longitud, atascamiento, +, -
2= <>, >, >=, <>
3no
4y
5o

Los operadores de la misma precedencia son de izquierda a derecha evaluado dentro de una pregunta. Sin embargo la precedencia de operador se puede eliminar usando paréntesis como se muestra por el ejemplo siguiente.
select ".xset.xuid" where not "com.example.bool-prop" and  "com.example.int-prop" = 64
select ".xset.xuid" where not ("com.example.bool-prop" and "com.example.int-prop" = 64)


En el primer ejemplo, no el operador se aplica solamente a la característica de com.example.bool-prop. En el segundo ejemplo, no el operador se aplica a com.example.bool-prop y a com.example.int-prop = 42.

Ahora que somos algo familiares con sintaxis de XAM QL, la pregunta siguiente que se contestará es cómo decimos un sistema del almacenaje de XAM ejecutar una pregunta y volvernos los resultados. Resulta bien que una pregunta está ejecutada como un tipo particular de trabajo de XAM llamó un trabajo de la pregunta. La entrada a un trabajo de la pregunta es un XSet que usted debe crear. Este XSet debe contener dos artículos - el mand de org.snia.xam.job.com del campo que se fija siempre al `xam.job.query y a un mand de XStream xam.job.query.com que sea una corriente de texto UTF-8 (tipo texto del MIME del `/llano; charset=utf-8') contener la secuencia real de la expresión de la pregunta.

Un trabajo de la pregunta se puede confiar opcionalmente antes o durante de la ejecución del trabajo, pero éste confía no se requiere. La capacidad de confiar un trabajo corriente es dependiente opcional y de la puesta en práctica. Un uso puede determinar si el trabajo confía es apoyado comprobando la característica boleana .xsystem.job.com mit.supported de XSystem. La falta de confiar un trabajo de la pregunta antes de que el cierre del XSet signifique los resultados del trabajo de la pregunta no se almacena persistente.

Un trabajo de la pregunta es ejecutado invocando el submitJob. Si cualquiera de los dos artículos requeridos en el trabajo XSet de la pregunta no se completa correctamente, el campo estándar .xam.job.error del error del trabajo se agrega al trabajo XSet de la pregunta y es valor se fija a cualquier org.snia.xam:: not_a_job u org.snia.xam:: se aborta el unspecified_command y el trabajo de la pregunta. Según las indicaciones del uso de muestra abajo, el estado de un trabajo de la pregunta puede ser determinado examinando el valor de .xam.job.status.

Cuando un trabajo de la pregunta es acertado, los resultados se almacenan en el trabajo XSet de la pregunta bajo la forma de nuevo XStream nombrado xam.job.query.results. Este XStream tiene un tipo del MIME del uso/vnd.snia.xam.query.xuid_list y contiene el XUIDs para el sistema de XSets resultando de la evaluación de la pregunta. Cada XUID se almacena en un formato binario como parte de un expediente de 80 octetos. Si un XUID es más corto de 80 octetos, el expediente es cero rellenado a 80 octetos.

Un número de otras características referentes a los resultados XStream también se fijan. La característica xam.job.query.results.count del xam_int contiene la cuenta actual de los expedientes de XUID en los resultados XStream. Se pone al día esta característica mientras que los resultados se incorporan en los resultados XStream durante el proceso de la pregunta. Un uso puede utilizar esto para proporcionar la información de estado a los usuarios mientras que el trabajo de la pregunta ejecuta. La característica xam_string xam.job.query.level indica el nivel de la pregunta que empareja los resultados. Su valor es u org.snia.xam.job.query.level.1 u org.snia.xam.job.query.level.2.

Es importante recordar que un trabajo de la pregunta funciona dentro de los papeles y de los permisos concedidos a la conexión. Eso significa que los resultados XStream incluyen solamente eso XSets que son visibles y accesibles a un uso, por lo menos de una perspectiva leída, según el papel bajo el cual se ejecuta el trabajo de la pregunta.

El trabajo de la pregunta puede fijar los códigos de error siguientes en .xam.job.error:

xam.job.query:: level_not_supportedEl sistema del almacenaje de XAM no puede apoyar el nivel de la pregunta especificado en el trabajo de la pregunta. Un error no fatal.
xam.job.query:: invalid_command_syntaxUn error de sintaxis no fatal ocurrió mientras que analizaba la secuencia de la pregunta
xam.job.query:: insufficient_permissionEl usuario actualmente authenticado no tiene suficiente
permiso para ejecutar el trabajo de la pregunta
xam.job.query:: insufficient_resourcesEl sistema del almacenaje de XAM no tiene suficientes recursos para terminar el trabajo de la pregunta

Cuando un trabajo de la pregunta se para para cualquier razón, la salud estándar del trabajo y los campos de estado, es decir .xam.job.errorhealth y .xam.job.status, se fija para apropiarse de valores y el sistema del almacenaje de XAM puede poner un XUIDs cero o más adicional en los resultados XStream. Así un uso debe considerar siempre valores completos de XUID en los resultados XStream. La reanudación de un trabajo parado de la pregunta no se apoya.

Observe que, desemejante de un RDBMS tradicional, no hay fijación de un sistema del almacenaje de XAM durante la ejecución de un trabajo de la pregunta. Así un resultado de la pregunta no es una foto instantánea de un sistema del almacenaje de XAM. El contenido de un sistema del almacenaje de XAM puede o no puede cambiar mientras que se ejecuta un trabajo de la pregunta. La regla general es que ninguÌn XSet se haya almacenado que antes de que el comienzo del trabajo de la pregunta se incluya en los resultados XStream si cumple los criterios de la pregunta, y ninguÌn XSet se haya almacenado que después de que el trabajo de la pregunta haya terminado no debe ser incluido en los resultados XStream. XSets que se almacena durante la ejecución de trabajo de la pregunta puede o no puede ser incluido. Los mismos criterios se aplican a los resultados XStream. Puede incluir XUIDs de XSets que está no más en el sistema del almacenaje de XAM y el XUIDs de XSets que cumpla no más los criterios de búsqueda debido a un cambio en el XSet después de que el detalle XSet fuera preguntado.

Aquí está un uso de Java simple que pregunta un sistema del almacenaje de XAM para determinarlo es nivel de ayuda para las preguntas de XAM.

import org.snia.xam.XAMException;
import org.snia.xam.XAMLibrary;
import org.snia.xam.XSystem;
import org.snia.xam.toolkit.XAMXUID;
import org.snia.xam.util.XAMLibraryFactory;

public class CheckQuerySupport
{
    private static XAMLibrary xamLib;
    private static XSystem xSystem;

    public static void main(String[] args)
    {
        String xri = "snia-xam://centera_vim!XXX.XXXX.XXX.XXX?/home/fpm/xam/xamconnect.pea";

        long exitCode = 0;
        boolean isSupported = false;

        try
        {
            xamLib = XAMLibraryFactory.newXAMLibrary();
            System.out.println("Connecting to XSystem: " + xri + "\n");

            xSystem = xamLib.connect(xri);

            // support job commit?
            isSupported = xSystem.getBoolean(XSystem.XAM_XSYSTEM_JOB_COMMIT_SUPPORTED);
            System.out.println("Support job commit? " + (isSupported ? "Yes" : "No"));

            // support continuance of job?
            isSupported = xSystem.getBoolean(XSystem.XAM_XSYSTEM_JOB_QUERY_CONTINUANCE_SUPPORTED);
            System.out.println("Support job continuance? " + (isSupported ? "Yes" : "No"));

            // support level 1 query?
            isSupported = xSystem.getBoolean(XSystem.XAM_XSYSTEM_JOB_QUERY_LEVEL1_SUPPORTED);
            System.out.println("Support level 1 query? " + (isSupported ? "Yes" : "No"));

            // support level 2 query?
            isSupported = xSystem.getBoolean(XSystem.XAM_XSYSTEM_JOB_QUERY_LEVEL2_SUPPORTED);
            System.out.println("Support level 2 query? " + (isSupported ? "Yes" : "No"));

            xSystem.close();
            System.out.println("\nClosed connection to XSystem");

        } catch (XAMException xe) {
            exitCode = xe.getStatusCode();
            System.err.println("XAM Error occured: " + xe.getMessage());
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
            exitCode = 1;
        }

        System.exit((int) exitCode);
    }
}


Aquí está la salida de este uso cuando está conectada con un sistema del almacenaje del EMC Centera XAM

Connecting to XSystem: snia-xam://centera_vim!XXX.XXX.XXX.XXX?/home/fpm/xam/xamconnect.pea

Support job commit? No
Support job continuance? No
Support level 1 query? Yes
Support level 2 query? No

Closed connection to XSystem


Aquí está un uso de Java más largo que ejecuta tres la muestra XSets y las preguntas de la muestra que se discutan en la sección 10.8 del documento de la arquitectura V1.0 de XAM.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.snia.xam.XAMException;
import org.snia.xam.XAMLibrary;
import org.snia.xam.XSet;
import org.snia.xam.XStream;
import org.snia.xam.XSystem;
import org.snia.xam.XUID;
import org.snia.xam.toolkit.XAMXUID;
import org.snia.xam.util.XAMLibraryFactory;

public class QueryExample
{
    private static XAMLibrary xamLib;
    private static XSystem xSystem;

    private static void CreateXset(int parm1, String parm2, double parm3)
             throws XAMException
    {
        System.out.print("Create XSet 1 ....  ");

        XSet xSet = xSystem.createXSet(XSet.MODE_UNRESTRICTED);
        xSet.createProperty("com.example.rhc", false, true);
        xSet.createProperty("com,example.foo", false, parm1);
        xSet.createProperty("com.example.bar", false, parm2);
        xSet.createProperty("com.example.num", false, parm3);

        XUID xuID = xSet.commit();
        System.out.println("XUID: " + xuID.toString());

        xSet.close();
    }

   private static void CreateXset(int parm1, int parm2, int parm3)
             throws XAMException
    {
        System.out.print("Create XSet 2 ....  ");

        XSet xSet = xSystem.createXSet(XSet.MODE_UNRESTRICTED);
        xSet.createProperty("com.example.rhc", false, true);
        xSet.createProperty("com,example.foo", false, parm1);
        xSet.createProperty("com.example.bar", false, parm2);
        xSet.createProperty("com.example.num", false, parm3);

        XUID xuID = xSet.commit();
        System.out.println("XUID: " + xuID.toString());

        xSet.close();
    }

    private static void CreateXset(int parm1, int parm2)
             throws XAMException
    {
        System.out.print("Create XSet 3 ....  ");

        XSet xSet = xSystem.createXSet(XSet.MODE_UNRESTRICTED);
        xSet.createProperty("com.example.rhc", false, true);
        xSet.createProperty("com,example.foo", false, parm1);
        xSet.createProperty("com.example.num", false, parm2);

        XUID xuID = xSet.commit();
        System.out.println("XUID: " + xuID.toString());

        xSet.close();
    }

    private static void QueryXsystem(String queryString)
            throws XAMException
    {
        boolean finished = false;
        final int XAM_MAX_XUID = 80;
        int resultCount = 0;
        String status;

        System.out.println("Create query XSet. Query string: " + queryString);

        XSet query = xSystem.createXSet(XSet.MODE_UNRESTRICTED);
        query.createProperty(XSet.XAM_JOB_COMMAND, true, XSet.XAM_JOB_QUERY);

        byte[] buffer = queryString.getBytes();
        XStream queryStream = query.createXStream(XSet.XAM_JOB_QUERY_COMMAND, true, XAMLibrary.TEXT_PLAIN_MIME_TYPE);
        queryStream.write(buffer);
        queryStream.close();

        System.out.println("Submit query job ....");
        query.submitJob();

        System.out.println("Wait for query job to finish ....");

        while (!finished)
        {
            // check  status of query job
            status = query.getString(XSet.XAM_JOB_ERRORHEALTH);
            if (status.equals(XSet.XAM_JOB_ERRORHEALTH_ERROR))
            {
                System.out.println("ERROR: Errorhealth - " + query.getString(XSet.XAM_JOB_ERROR));
                query.haltJob();
                System.out.println("ERROR: Job halted");
                break;
            }

            status = query.getString(XSet.XAM_JOB_STATUS);
            resultCount = (int) query.getLong(XSet.XAM_JOB_QUERY_RESULTS_COUNT);

            // uncomment if you want continuous job status
            // System.out.println("Job Status: " + status + "  Result count: " + resultCount);

            // exit loop if job complete
            if (status.equals(XSet.XAM_JOB_STATUS_COMPLETE))
            {
                finished = true;
            }
       }

        System.out.println("Query job completed ....");
        System.out.println("Result set final count is: " + resultCount);

        if (resultCount > 0)
        {
             // open query job result stream
             XStream results = query.openXStream(XSet.XAM_JOB_QUERY_RESULTS, XStream.MODE_READ_ONLY);

             byte rawXUID[] = new byte[XAM_MAX_XUID];
             long bytesRead = 0;

             // output XUIDs in result set
             while( (bytesRead = results.read(rawXUID, XAM_MAX_XUID)) >= 0 )
             {
                 XAMXUID resultXUID = new XAMXUID(rawXUID);
                 System.out.println("XUID: " + resultXUID.toString());
             }

             results.close();
        }

        query.close();
    }

    public static void main(String[] args)
    {
        String xri = "snia-xam://centera_vim!XXX.XXX.XXX.XXX?/home/fpm/xam/xamconnect.pea";
        long exitCode = 0;

        try
        {
            xamLib = XAMLibraryFactory.newXAMLibrary();

            // uncomment next 2 lines if you want extensive XAM Library logging
            // xamLib.setProperty(XAMLibrary.XAM_LOG_VERBOSITY, 1);
            // xamLib.setProperty(XAMLibrary.XAM_LOG_LEVEL, 5);

            System.out.println("Connecting to XSystem " +  xri + "\n");

            xSystem = xamLib.connect(xri);
            xSystem.setProperty(".xsystem.log.verbosity", 1);
            xSystem.setProperty(".xsystem.log.level", 5);

            CreateXset(1, "string", 123.55);
            CreateXset(77, 42, 100);
            CreateXset(6, 200);

            xSystem.close();

            System.out.println("\nClose/reopen XSystem\n");

            xSystem = xamLib.connect(xri);

            // uncomment one or more of the following queries
            // QueryXsystem("select \".xset.xuid\"");
            QueryXsystem("select \".xset.xuid\" where (\"com.example.foo\" > 0) and (\"com.example.foo\" < 50)");
            // QueryXsystem("select \".xset.xuid\" where (\"com.example.bar\" > 0) and (\"com.example.bar\" < 100)");
            // QueryXsystem("select \".xset.xuid\" where exists (\"com.example.bar\")");
            // QueryXsystem("select \".xset.xuid\" where \"com.example.bar\" like '%ing%'");
            // QueryXsystem("select \".xset.xuid\" where \"com.example.num\" >= 124");
            // QueryXsystem("select \".xset.xuid\" where \"com.example.num\" >= 124.6 ");
            // QueryXsystem("select \".xset.xuid\" where (\"com.example.num\" >= 123) and typeof(\"com.example.num\") = 'application/vnd.snia.xam.int'");

            xSystem.close();
            System.out.println("\nClosed connection to XSystem");

        } catch (XAMException xe) {
            exitCode = xe.getStatusCode();
            System.err.println("XAM Error occured: " + xe.getMessage() + "("
                    + exitCode + ")");
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
            exitCode = -1;
        }

        System.exit((int) exitCode);
    }
}


Observe que los resultados XStream producido por un trabajo de la pregunta se pueden consumir por un uso antes de que el sistema del almacenaje de XAM haya acabado de almacenar todo el XUIDs en los resultados XStream si XStream.asyncRead se utiliza en vez de XStream.read.

Pienso bien que he proporcionado bastante información y ejemplos para permitirle ir juego con el lenguaje de interrogación de XAM de se. Usted necesita la ayuda yo está seguro que será el grupo del revelador de XAM en los grupos de Google más que feliz de ayudarle.

En la partida precisaría que puesto que los abastecedores del sistema del almacenaje de XAM se requieren actualmente solamente ejecutar la ayuda para las preguntas sobre los meta datos contentos, sospecho que la ayuda para las búsquedas por completo contenido-basadas reales usando XAM puede no ocurrir por algún tiempo.

Los comentarios son cerrados.