번역하십시오

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
현대 운영 체계 (제 3 판)의 심상
유닉스 환경에서 진보된 프로그램, 2판 (에디슨-웨슬리 전문가 계산 시리즈)의 심상
운영 체계 개념의 심상
Google Maps API 3 시작의 심상

XAM 질문 언어

, XSets를 만회하고 창조의 납품업자 독립적인 방법 제공 뿐만 아니라, 변경하고 삭제하고, SNIA XAM v1.0 명세는 또한 SQL 언어, 왜냐하면 내용 정의한 표준에 근거를 둔 XSets의 XUIDs 선정하고는 만회하기의 부분 집합에 근거하여 질문 언어 (XAM QL)를, 정의한다.

이 질문 언어를 위한 예약어의 세트는 확실히 작다: , 후에, 포함하기 전에, 또는, 아닙니다, 같이, 존재하는 곳에, 연결, typeof 읽기 전용, 길이, 날짜, 진실하고, 틀린 그리고 안에서 선정하거든. 의도적으로, XAM 질문은 SQL 추려낸 계산서와 같이 보인다. 질문 언어는 무신경한 케이스이고 ASCII 문자 집합을 이용한다.

간단한 XAM 질문의 보기는 여기 있다:

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


XAM 명세의 버전 1.0는 질문 언어 지원의 2개 수준을 정의한다, i.e 수준 1수준 2. 수준 1은 재산에 질문과 XSets에 있는 분야 속성을 정의하고 강제적이다. XAM 도서관을 통해 응용 프로그램에 접근 가능한 어떤 XSet 자산 가격든지 질문될 수 있다. 수준 2는 XStreams에 지원 질문까지 수준 1을 확장하고 선택적이다. 질문의 두 수준 다 지원해야 모든 XAM 공급자가 하는 단 하나의, 정의된 일 유형을 통해서 접근된다. 아무 납품업자도 실제로 실행하기 수준 2 질문이 나는을 알고 있다 없기 때문에, 수준 1 질문에 이 포스트 초점의 나머지.

XAM 질의문은 선택에 선행된 강제적인 추려낸 항목으로 곳에 항목 이루어져 있다. XAM v1.0를 위해 유일하게 유효한 추려낸 항목은 추려낸 `.xset.xuid'.이다. 이것은 신청이 XUID 가치의 명부를 요구하고 있다는 것을 지정한다. 예를 들면

select ".xset.xuid "


질문의 때에 읽기 쉬운 각 XSet의 명부를 돌려보낼 것이다.

일치할 XSets의 부분 집합을 지정하기 위하여 항목이 이용되는 곳에. 수준 1 질문을 위해 그것은 XSet 재산 및 문자 가치 사이 비교에 및 또는 분야 속성 및 문자 가치 제한된다.

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


모든 Xsets의 명부를 돌려보낼 것이다 또는 2009년 2월 1일 후에 창조된.

수비에 세우는 다음에 나오는 테이블 쇼 및 문자 유형은 유효하게 비교될 수 있다.

xam_intxam_doublexam_stringxam_datetimexam_xuid
int**
두 배**
*
날짜 시간*
XUID*

XAM 도서관은 끈과 끈 자유주의자가 따르는 UTF-8 끈이다 유효하게 한다. 따르지 않는 UTF-8 끈 오자는 XAM 비치명적 질문 구문 오류를 생성한다. 다수 glyph 특성 및 비 인쇄 가능 문자 대 단 하나와 같은 문제점은 특기하지 않고 실시와 신청 종이다. 끈 비교는 대소문자에 민감하 비교 연산자는 바이트 에 의하여 바이트 기초를 수술한다. 관계 연산자를 위해 관계는 바이트 가치에 의해 정의된다. 모든 자료 정상화는 신청의 책임이다.

지원한 확장 문자열은 다음과 같는다. 다른 어떤 확장 문자열은 치명적이지 않은 에러를 생성할 것이다.

\ \백슬래시 (\)
\ "이중 인용 부호 (")
\ '단일 인용 부호 (')
\ uxxxx16 진법 체재에 있는 Unicode 특성 (xxxx)

끈 오자는 단일 인용 부호로 인용되어야 한다. 한개 이상 단일 인용 부호 특성을 포함하는 끈 오자는 백슬래시를 사용하여 각 단일 인용 부호 특성을 도주해야 한다. 예를 들면, '이것의 끈 오자는 질문에서 끈 literal 대표될 것입니다 것과 같이이다
select ".xset.xuid" where "com.example.string-property" = ’This is a string literal’


끈에 있는 단일 인용 부호를 사용하기 위하여는, 백슬래시에 그것을 감시하십시오

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


XAM 질문 끈에 있는 필드 이름의 모든 경우는 이중 인용 부호로 인용되어야 한다. 필드 이름이 이중 인용 부호 특성을 포함하는 경우에, 각 이중 인용 부호 특성은 백슬래시를 사용하여 도주되어야 한다. 예를 들면, xam_boolean 재산 com.example의 필드 이름. " qstring는" 질문에서 것과 같이 대표되어야 한다

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


필드 이름이 백슬래시 특성을 포함하는 경우에, 백슬래시 자체는 다른 백슬래시로 도주되어야 한다. 예를 들면, xam_double 재산 com.example.file \ 비율의 필드 이름은 질문에서 것과 같이 대표되어야 한다

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


질문 언어는 날짜 시간을 받아들이고 선별기 기능을 사용하여 XUID 평가한 오자는 () xuid () 각각 날짜를 기입하고. 날짜 () 기능은 때문에 지정된 제대로 형성한 날짜 시간 가치를 XAM 날짜 시간 명세로 일관된 문자 끈 가지고 가기.

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


xuid () 기능은 base64에 의하여 암호로 고쳐 쓴 끈 오자의 모양으로인 XUID를 예상한다. 부적당하게 형성한 끈 오자는 질문 분석 도중 치명적이지 않은 에러를 생성한다.

분야 속성은을 사용하여 존재한다, typeof, 읽기 전용, 바인딩길이 분야 속성 접근자 기능 접근된다. 성능 실험은 () XSet에서 이름 필드 속성 (재산)의 실존을 위한 존재한다. 그것은 그렇지 않으면 틀린 평가하는 XSet가 이름 필드를 포함하는 경우에 조정하기 위하여 평가한다.

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


typeof () 기능은 끈 평가한 재산인 XSet에 있는 이름 필드의 MIME 유형을 돌려보낸다.

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


이 기능은 신청이 끈 평가한 재산에 분야 참고를 사용할 수 있었다 언제든지 사용될 수 있다. 어떤 비 끈 문자 가치든지를 가진 비교가 질문의 분석 도중 치명적이지 않은 에러를 생성한ㄴ다는 것을 유의하십시오.

읽기 전용 () 기능은 XSet에 있는 분야가 읽기 전용 것과 같이 언제 표를 하는지 조정하기 위하여 평가한다.

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


의무적인 () 기능은 XSet에 있는 분야가 언제 표를 하는지 조정하기 위하여 평가해 묶기 것과 같이.

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


길이 () 기능은 길이를, 이름 필드의 바이트에서, 돌려보낸다.

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


재산 길이에 사용될 때 stypes를 위해 정의되는 것과 같이 이 기능 반환을 수비에 세운다. 이 비교가 사용되는 특성 암호화에 달려 있는 때 끈에 있는 특성의 수를 비교하기 위하여 이 기능이 이용되면 안된ㄴ다는 것을 유의하십시오.

논리 연산자로 지금 돌기. 항목이 논리 연산자를 사용해서 및지 결합되고 변경될지도 모르다 곳에 내의 Subclauses, 또는 그리고 아닙니다. 이 통신수는 그들의 SQL 대조물과 유사하다.

그리고 통신수 두 subclauses 다 결과에 있는 XSet를 포함하여 전에 조정하기 위하여 평가할 것을 요구한다. 예를 들면

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


그 그의 크기가 4096 바이트보다 더 중대한 GIF 심상을 포함하는 XSets만 단지 선정한다. 어느 것이든 subclause가 조정하기 위하여 평가하는 경우에 또는 통신수 조정하기 위하여 평가한다. 예를 들면

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


그 심상 유형 JPEG 또는 GIF의 지명한 시내를 포함하는 XSets만 단지 선정한다. 통신수는 아닙니다 논리식을 부정한다. 예를 들면

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


nonbinding 재산 com.example.property를 가진 모든 XSets를 선정한다.

SQL 특정 통신수에서 것과 같이 질문에 있는 다른 통신수를 보다 우선하십시오. XAM QL 통신수 앞서기는 다음과 같이이다:

앞서기통신수
1, 의 typeof, 길이, 바인딩, + 읽기 전용 존재한다, -
2= <>, >, >=, <>
3아닙니다
4그리고
5또는

동일한 앞서기의 통신수는 질문 내의 오른쪽으로 좌로 평가된다. 그러나 통신수 앞서기는 뒤에 오는 보기에 의해 보이는 것과 같이 괄호를 사용하여 무시될지도 모른다.
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)


첫번째 보기에서는, 통신수는 아닙니다 com.example.bool 버팀대 재산에서만 적용한다. 두번째 보기에서는, 통신수는 아닙니다 com.example.bool 버팀대와 com.example.int 버팀대 둘 다에 = 42 적용한다.

우리가 XAM QL 통어론에 약간 익숙할 이니까, 응답될 다음 질문은 우리가 XAM 저장 체계를 질문을 수행하고 저희 결과를 돌려보내도록 말하는 방법 이다. 잘 그것은 XAM 일의 특정한 유형이 질문 일을 부른 대로 질문이 수행된다 끈다. 질문 일에 입력은 창조해야 당신이 하는 XSet이다. 이 XSet는 2개의 품목 - `xam.job.query와 UTF-8 본문의 흐름 (MIME 유형 `원본 또는 평야인 XStream xam.job.query.com mand에 항상 놓이는 분야 org.snia.xam.job.com mand를 포함해야 한다; charset=utf-8') 실제적인 질문 표정 끈 포함.

질문 일은 일의 실행 지금까지 선택적으로 투입될지도 모르지만, 이것은 요구되지 않는다 투입한다. 실행 작업을 투입하는 기능은 선택과 실시 종이다. 신청은 일이 XSystem 부울 논리 연산 재산 .xsystem.job.com mit.supported를 검사해서 지원되면 투입하는지 결정할 수 있다. XSet를 닫기 의미할 전에 질문 일을 투입하는 실패는 질문 일의 결과 지속적으로 저장되지 않는다.

질문 일은 submitJob를 빌어서 수행된다. 질문 일 XSet에 있는 2개의 요구된 품목의 어느 쪽이든이 정확하게 기입되지 않는 경우에, 표준 일 과실 분야 .xam.job.error는 질문 일 XSet에 추가되고 어느 것이든 org.snia.xam에 가치 놓인다이다:: not_a_job 또는 org.snia.xam:: unspecified_command와 질문 일은 유산된다. 아래에 샘플 애플리케이션에서 보이는 것처럼, 질문 일의 국가는 .xam.job.status의 가치를 시험해서 결정될지도 모른다.

질문 일이 성공의 때, 결과는 xam.job.query.results이라고 지명된 새로운 XStream의 모양으로 질문 일 XSet에서 저장된다. 이 XStream에는 신청 vnd.snia.xam.query.xuid_list의 MIME 유형이 있고 XSets의 세트를 위한 XUIDs를 포함해 질문의 평가에서 유래한. 각 XUID는 80 바이트 기록의 한 부분으로 이진 형식에서 저장된다. XUID가 80 바이트보다 더 짧은 경우에, 기록은 80 바이트에 덧대진 0이다.

결과 XStream에 관하여 다른 다수 재산은 또한 설치된다. xam_int 재산 xam.job.query.results.count는 결과 XStream에 있는 XUID 기록의 현재 조사를 포함한다. 이 재산은 질문 가공 도중 결과 XStream로 들어가는 결과적으로 새롭게 한다. 신청은 질문 일이 수행하는 때 사용자에게 상황 정보를 제공하기 위하여 이것을 이용할 수 있다. xam_string 재산 xam.job.query.level는 결과와 일치하는 질문 수준을 나타낸다. 그것의 가치는 org.snia.xam.job.query.level.1 또는 org.snia.xam.job.query.level.2 이다.

질문 일이 연결에 수여된 역할 및 허가 안에 작동한ㄴ다는 것을 기억하는 것이 중요하다. 그것은 서만 질문 일이 수행되는 역할에 따라 읽힌 관점에서 신청에 눈에 보이고 접근 가능한, 적어도, 결과 XStream가 그 XSets를 포함한ㄴ다는 것을 의미한다.

질문 일은 .xam.job.error에 있는 뒤에 오는 오류 코드를 놓을지도 모른다:

xam.job.query:: level_not_supportedXAM 저장 체계는 질문 일에서 지정된 질문 수준을 지원할 수 없습니다. 치명적이지 않은 에러.
xam.job.query:: invalid_command_syntax비치명적 구문 오류는 질문 끈을 분석하고 있는 동안 발생했다
xam.job.query:: insufficient_permission지금 인증된 사용자는 충분하가 없다
질문 일을 수행하는 허가
xam.job.query:: insufficient_resourcesXAM 저장 체계에는 질문 일을 완료하는 충분한 자원이 없다

질문 일이 어떤 이유에서건 정지될 때, 표준 일 건강은 상태 분야, i.e .xam.job.errorhealth .xam.job.status, 가치를 충당하기 위하여 놓이고 XAM 저장 체계는 결과 XStream에 있는 0 모른다 또는 둘지도 추가 XUIDs. 따라서 신청은 항상 결과 XStream에 있는 완전한 XUID 가치를 보아야 한다. 정지된 질문 일을 다시 시작하는 것은 지원되지 않는다.

, 전통적인 RDBMS와는 다른, 질문 일의 실행 중에 XAM 저장 체계의 아무 잠그는도 다는 것을 유의하십시오. 따라서 질문 결과는 XAM 저장 체계의 즉석 스냅이 아니다. XAM 저장 체계의 내용은 질문 일이 수행되는 동안 변화하지 않을지도 모른다. 일반 규칙은 질문 표준에 부합하는 경우에 질문 일 이 저장된 어떤 XSet든지 결과 XStream, 및 질문 일이 완료한 후에 저장된 아무 XSet나에서 결과 XStream에서 포함될 것이지 않는다는 것을 포함된ㄴ다는 것을 이다. XSets는 포함되지 않을 지도 질문 일 실행 중에 저장되는 모른다. 동일한 표준은 결과 XStream에 적용한다. 그것은 XSets의 XUIDs를 포함할지도 모른다 내역 XSet가 질문된 후에 더 이상 XSet에 있는 변화 때문에 선탁 기준에 부합하지 않는 XSets의 XAM 저장 체계 그리고 XUIDs에 더 이상 있지 않는.

그것을 결정하기 위하여 XAM 저장 체계를 인 XAM 질문을 위한 지원의 수준 질문하는 간단한 Java 애플리케이션은 여기 있다.

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


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


XAM 건축술 V1.0 문서의 단면도 10.8에서 토론되는 3 견본 XSets 및 견본 질문을 실행하는 더 긴 Java 애플리케이션은 여기 있다.

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


XStream.asyncRead가 XStream.read 대신에 사용되는 경우에 XAM 저장 체계가 결과 XStream에 있는 XUIDs 전부를 저장할 끝내기 전에 질문 일에 의해 생성한 결과 XStream가 신청에 의해 소모될지도 모른다 유의하십시오.

잘 나는 당신을 XAM 질문 언어를 가진 혼자서 가는 가능하게 하도록다는 것을 나가 충분한 정보 및 보기를 놀이 제공했다는 것을 생각한다. 그것은 당신 Google 그룹에 XAM 개발자 그룹이 당신을 돕게 행복할 보다는 좀더 일 것이라는 점을 도움을 나 확실하다 필요로 한다.

고별에서 나는 XAM를 사용하여 실제적인 충분히 내용 근거한 수색을 위한 지원은 얼마 동안 생기지 않을지도 모른다 XAM 저장 체계 공급자가 지금 단지 만족한 메타-데이터에 질문을 위한 지원을 실행하기 것을 요구되기 때문에, 나는 의심한ㄴ다는 것을 지적할 것입니다.

코멘트는 닫힌다.