XML Connector for CData Sync

Build 23.0.8839
  • XML
      • リモートXML メタデータの表示
    • 接続の確立
      • XML データソースへの接続
      • Amazon S3 への接続
      • Azure Blob Storage への接続
        • カスタムOAuth アプリの作成
      • Azure Data Lake Storage への接続
        • カスタムOAuth アプリの作成
      • Box への接続
        • カスタムOAuth アプリの作成
      • Dropbox への接続
        • カスタムOAuth アプリの作成
      • Google Cloud Storage への接続
        • カスタムOAuth アプリの作成
      • Google Drive への接続
        • カスタムOAuth アプリの作成
      • HTTP Streams への接続
      • IBM Object Storage への接続
      • OneDrive への接続
        • カスタムOAuth アプリの作成
      • SFTP への接続
      • SharePoint Online への接続
      • SSO 接続
      • データアクセスのファインチューニング
      • Kerberos の使用
    • XML データのモデリング
      • Raw データ
      • 階層データの解析
        • フラット化されたドキュメントモデル
        • トップレベルのドキュメントモデル
        • リレーショナルモデル
      • 自動スキーマ検出
      • フリーフォームクエリ
      • 垂直フラット化
      • XML 関数
      • スキーマのカスタマイズ
        • スキーマファイルの生成
        • カラム定義
        • SELECT 実行
        • INSERT 実行
        • UPDATE 実行
        • DELETE 実行
        • Raw データ
        • ストアドプロシージャの定義
        • オペレーション
          • xmlproviderGet
          • oauthGetAccessToken
          • oauthGetUserAuthorizationURL
          • utiladoRefreshOAuth
          • utiladoSleep
    • 高度な機能
      • SSL の設定
      • ファイアウォールとプロキシ
    • API Script Reference
      • Items in API Script
      • Value Formatters
        • String Formatters
        • Date Formatters
        • Math Formatters
      • Keyword Reference
        • api:break
        • api:call
        • api:case
        • api:catch
        • api:check
        • api:continue
        • api:default
        • api:else
        • api:enum
        • api:equals
        • api:exists
        • api:first
        • api:finally
        • api:if
        • api:include
        • api:info
        • api:last
        • api:map
        • api:match
        • api:notequals
        • api:null
        • api:notnull
        • api:push
        • api:script
        • api:select
        • api:set
        • api:setc
        • api:setm
        • api:throw
        • api:try
        • api:unset
        • api:validate
    • 接続文字列オプション
      • Authentication
        • AuthScheme
        • AccessKey
        • SecretKey
        • ApiKey
        • User
        • Password
        • SharePointEdition
      • Connection
        • ConnectionType
        • URI
        • XPath
        • DataModel
        • XMLFormat
        • Region
        • ProjectId
        • OracleNamespace
        • StorageBaseURL
        • SimpleUploadLimit
        • UseVirtualHosting
        • UseLakeFormation
      • AWS Authentication
        • AWSAccessKey
        • AWSSecretKey
        • AWSRoleARN
        • AWSPrincipalARN
        • AWSRegion
        • AWSCredentialsFile
        • AWSCredentialsFileProfile
        • AWSSessionToken
        • AWSExternalId
        • MFASerialNumber
        • MFAToken
        • TemporaryTokenDuration
        • ServerSideEncryption
        • SSEContext
        • SSEEnableS3BucketKeys
        • SSEKey
      • Azure Authentication
        • AzureStorageAccount
        • AzureAccessKey
        • AzureSharedAccessSignature
        • AzureTenant
        • AzureEnvironment
      • SSO
        • SSOLoginURL
        • SSOProperties
        • SSOExchangeUrl
      • OAuth
        • OAuthVersion
        • OAuthClientId
        • OAuthClientSecret
        • Scope
        • OAuthGrantType
        • OAuthPasswordGrantMode
        • OAuthIncludeCallbackURL
        • OAuthAuthorizationURL
        • OAuthAccessTokenURL
        • OAuthRefreshTokenURL
        • OAuthRequestTokenURL
        • AuthToken
        • AuthKey
        • OAuthParams
      • JWT OAuth
        • OAuthJWTCert
        • OAuthJWTCertType
        • OAuthJWTCertPassword
        • OAuthJWTCertSubject
        • OAuthJWTAudience
        • OAuthJWTValidityTime
      • Kerberos
        • KerberosKDC
        • KerberosRealm
        • KerberosSPN
        • KerberosKeytabFile
        • KerberosServiceRealm
        • KerberosServiceKDC
        • KerberosTicketCache
      • SSL
        • SSLClientCert
        • SSLClientCertType
        • SSLClientCertPassword
        • SSLClientCertSubject
        • SSLMode
        • SSLServerCert
      • SSH
        • SSHAuthMode
        • SSHClientCert
        • SSHClientCertPassword
        • SSHClientCertSubject
        • SSHClientCertType
        • SSHUser
        • SSHPassword
      • Firewall
        • FirewallType
        • FirewallServer
        • FirewallPort
        • FirewallUser
        • FirewallPassword
      • Proxy
        • ProxyAutoDetect
        • ProxyServer
        • ProxyPort
        • ProxyAuthScheme
        • ProxyUser
        • ProxyPassword
        • ProxySSLType
        • ProxyExceptions
      • Logging
        • LogModules
      • Schema
        • Location
        • BrowsableSchemas
        • Tables
        • Views
        • PushAttributes
        • FlattenArrays
        • FlattenObjects
        • QualifyColumns
      • Miscellaneous
        • BackwardsCompatibilityMode
        • Charset
        • ClientCulture
        • Culture
        • CustomHeaders
        • CustomUrlParams
        • ExcludeFiles
        • FlattenRowLimit
        • FolderId
        • GenerateSchemaFiles
        • IncludeDropboxTeamResources
        • IncludeFiles
        • IncludeItemsFromAllDrives
        • MaxRows
        • MetadataDiscoveryURI
        • Other
        • Pagesize
        • PathSeparator
        • PseudoColumns
        • RowScanDepth
        • Timeout
        • TypeDetectionScheme
        • URISeparator
        • UserDefinedViews

XML Connector for CData Sync

概要

CData Sync App は、XML データをデータベース、データレイク、またはデータウェアハウスに継続的にパイプライン化する簡単な方法を提供し、分析、レポート、AI、および機械学習で簡単に利用できるようにします。

XML コネクタはCData Sync アプリケーションから使用可能で、XML からデータを取得して、サポートされている任意の同期先に移動できます。

XML バージョンサポート

The Sync App models XML-based REST APIs as bidirectional database tables and XML files as views (local XML files, files stored on popular cloud services, and FTP servers). The Sync App abstracts connecting to remote data as well as data processing: TLS/SSL, HTTP/FTP, and authentication. The major authentication schemes are supported, including HTTP Basic, Digest, NTLM, OAuth, and FTP.

XML Connector for CData Sync

リモートXML メタデータの表示

CData Sync App は、XML ストリーミング専用です。

このストリームファイルのコンテンツには、リモートで保存されたXML ファイルに関連するファイル名やフォルダ名などのメタデータはすべて含まれていません。

ファイルのメタデータとファイルの実際のコンテンツの両方にアクセスする必要がある場合は、CData Sync App は、XML ファイルがリモートで格納されているサービスの関連ファイルシステムドライバーと併せて使用する必要があります。

以下のファイルシステムドライバーが利用可能です。

  • AmazonS3
  • Box
  • Dropbox
  • FTP
  • GoogleCloudStorage
  • IBLCloudObjectStorage
  • OneDrive
  • SFTP

保存されているXML ファイルメタデータに接続するための設定方法については、関連するCData ファイルシステムドライバーのドキュメントを参照してください。

XML Connector for CData Sync

接続の確立

XML への接続を追加

XML への接続を追加するには:

  1. アプリケーションコンソールで、接続ページに移動します。
  2. 接続の追加パネルで、追加したい接続のアイコンを選択します。
  3. XML アイコンが利用できない場合は、Add More アイコンをクリックしてCData サイトからXML コネクタをダウンロードおよびインストールします。

必須プロパティについては、設定タブを参照してください。

通常必須ではない接続プロパティについては、高度な設定タブを参照してください。

CData Sync App を使用すると、ローカルおよびリモートのXML リソースに接続できます。データソースへの接続に必要なプロパティに加えて、URI プロパティをXML リソースの場所に設定します。

ローカルファイルへの接続

ConnectionType をLocal に設定します。ローカルファイルは、SELECT\INSERT\UPDATE\DELETE をサポートします。

URI をXML ファイルを含むフォルダに設定します。 C:\folder1。

Cloud-Hosted XML ファイルへの接続

Sync App はさまざまなクラウドストレージ上にホストされたXML ファイルからデータを取得することができますが、INSERT、UPDATE、DELETE はローカルファイル以外ではサポートされていません。

クラウド上のファイルをINSERT、UPDATE、DELETE する必要がある場合は、そのクラウドサービスに対応するCData Sync App をダウンロードし(ストアドプロシージャでサポートされています)、ローカルファイルの対応するSync App に変更を加え、そのクラウドソース用のストアドプロシージャを使ってファイルをアップロードできます。

例えば、SharePoint 上に格納されたファイルをアップデートしたい場合、CData SharePoint Sync App のDownloadDocument プロシージャを使用してXML ファイルをダウンロードし、CData XML Sync App でローカルのXML ファイルをアップデートして、最後にSharePoint Sync App のUploadDocument プロシージャを使って変更されたファイルをSharePoint にアップロードできます。

URI 接続プロパティの先頭にある一意の接頭辞は、Sync App が対象とするクラウドデータストアを識別するために使用され、残りのパスは目的のフォルダ(1ファイルにつき1テーブル)または単一ファイル(単一テーブル)への相対パスとなります。

Amazon S3

Amazon S3 に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:ConnectionType をAmazon S3 に設定。
  • URI:バケット内のXML ドキュメント:s3://bucket1/folder1 に設定。

Amazon S3 でホストされているXML ファイルへの接続および認証について詳しくは、Amazon S3 への接続 を参照してください。

Azure Blob Storage

Azure Blob Storage に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:Azure Blob Storage に設定。
  • URI:コンテナの名前およびBlob の名前に設定。例えば、azureblob://mycontainer/myblob です。

Amazon Blob Storage でホストされているXML ファイルへの接続および認証について詳しくは、Azure Blob Storage への接続 を参照してください。

Azure Data Lake Storage

Azure Data Lake Storage に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、またはAzure Data Lake Storage Gen2 SSL に設定。
  • URI:ファイルシステムの名前、XML ファイルにコンタクトするフォルダの名前、およびXML ファイルの名前 に設定。次に例を示します。
    • Gen 1:adl://myfilesystem/folder1
    • Gen 2:abfs://myfilesystem/folder1
    • Gen 2 SSL:abfss://myfilesystem/folder1

Azure Data Lake Storage でホストされているXML ファイルへの接続および認証について詳しくは、Azure Data Lake Storage への接続 を参照してください。

Azure File Storage

接続するには次のプロパティを設定します。

  • ConnectionType:Azure Files に設定。
  • URI:Azure ファイル共有の名前とリソースの名前に設定。例:azurefile://fileShare/remotePath。
  • AzureStorageAccount(必須):Azure ファイルに紐づいているアカウントに設定。

Azure アクセスキーまたはAzure 共有アクセス署名のいずれかで認証できます。次のいずれか1つを設定してください。

  • AzureAccessKey:Azure ファイルに紐づいているアクセスキーに設定。
  • AzureSharedAccessSignature:Azure ファイルに紐づいている共有アクセス署名に設定。

Box

Box に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:Box に設定。
  • URI:ファイルシステムの名前、XML ファイルにコンタクトするフォルダの名前、およびXML ファイルの名前 に設定。例えば、box://folder1です。

Box でホストされているXML ファイルへの接続および認証について詳しくは、Box への接続 を参照してください。

Dropbox

Dropbox に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:Dropbox に設定。
  • URI:XML ファイルへのパス に設定。例えば、dropbox://folder1 です。

Dropbox でホストされているXML ファイルへの接続および認証について詳しくは、Dropbox への接続 を参照してください。

FTP

Sync App は、FTP サーバーへのプレーンテキスト接続およびSSL/TLS 接続の両方をサポートします。

次の接続プロパティを設定して接続します。

  • ConnectionType:FTP またはFTPS のいずれかに設定。
  • URI:XML ファイルへのパスが付いたサーバーのアドレス に設定。例:ftp://localhost:990/folder1 またはftps://localhost:990/folder1。
  • User:接続するFTP(S) サーバーのユーザー名に設定。
  • Password:接続するFTP(S) サーバーのパスワードに設定。

Google Cloud Storage

Google Cloud Storage に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:Google Cloud Storage に設定。
  • URI:ファイルシステムの名前、XML ファイルを含むフォルダの名前、およびXML ファイルの名前 へのパスに設定。例えば、gs://bucket/remotePath です。

Google Cloud Storage でホストされているXML ファイルへの接続および認証について詳しくは、Google Cloud Storage への接続 を参照してください。

Google Drive

Google Drive に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:Google Drive に設定。
  • URI:ファイルシステムの名前、XML ファイルにコンタクトするフォルダの名前、およびXML ファイルの名前 へのパスに設定。例えば、gdrive://folder1 です。

Google Drive でホストされているXML ファイルへの接続および認証について詳しくは、Google Drive への接続 を参照してください。

HDFS

HDFS に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:HDFS またはHDFS Secure に設定。
  • URI:XML ファイルへのパス に設定。次に例を示します。
    • HDFS: webhdfs://host:port/remotePath
    • HDFS Secure: webhdfss://host:port/remotePath

HDFS データソースへの接続に使用できる認証方法は、匿名認証とKerberos 認証の2つがあります。

匿名認証

状況によっては、認証接続プロパティなしでHDFS に接続できます。 そのためには、AuthScheme プロパティをNone(デフォルト)に設定します。

Kerberos を使用した認証

認証資格情報が必要な場合、認証にKerberos を使用することができます。 Kerberos で認証する方法についての詳細は、Kerberos の使用 を参照してください。

HTTP Streams

HTTP streams に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:HTTP またはHTTPS に設定。
  • URI:HTTP(S) stream のURI に設定。次に例を示します。
    • HTTP: http://remoteStream
    • HTTPS: https://remoteStream

HTTP Streams でホストされているXML ファイルへの接続および認証について詳しくは、HTTP Streams への接続 を参照してください。

IBM Cloud Object Storage

IBM Cloud Object Storage に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:IBM Object Storage Source に設定。
  • URI:バケットおよびフォルダに設定。例えば、ibmobjectstorage://bucket1/remotePath です。
  • Region:このプロパティをIBM インスタンスリージョンに設定。例:eu-gb.

IBM Cloud Object Storage でホストされているXML ファイルへの接続および認証について詳しくは、IBM Object Storage への接続 を参照してください。

OneDrive

OneDrive に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:OneDrive に設定。
  • URI:XML ファイルへのパス に設定。例えば、onedrive://remotePath です。

OneDrive でホストされているXML ファイルへの接続および認証について詳しくは、OneDrive への接続 を参照してください。

Oracle Cloud Storage

HMAC で認証するには、次のプロパティを設定します。

  • ConnectionType:ConnectionType をOracle Cloud Storage に設定。
  • URI:バケット内のXML ドキュメント:os://bucket/remotePath に設定。
  • AccessKey: Oracle Cloud のAccess Key に設定。
  • SecretKey:Oracle Cloud のSecret Key に設定。
  • OracleNamespace:Oracle cloud のnamespace に設定。
  • Region(オプション):S3ライクなWeb サービスのホスティングリージョンに設定。

SFTP

SFTP に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:SFTP に設定。
  • URI:これをサーバーのアドレスに設定し、ルートフォルダとして使用するフォルダのパスを続けて指定します。例えば、sftp://server:port/remotePath です。

SFTP でホストされているXML ファイルへの接続および認証について詳しくは、SFTP への接続 を参照してください。

SharePoint Online

SharePoint Online に格納されているXML リソースを識別するために以下を設定します。

  • ConnectionType:SharePoint REST またはSharePoint SOAP に設定。
  • URI:XML ファイルを含むドキュメントライブラリ に設定。次に例を示します。
    • SharePoint Online REST: sprest://remotePath
    • SharePoint Online SOAP: sp://remotePath

SharePoint Online でホストされているXML ファイルへの接続および認証について詳しくは、SharePoint Online への接続 を参照してください。

セキュアなXML への接続

デフォルトでは、Sync App はサーバーの証明書をシステムの信頼できる証明書ストアと照合してSSL/TLS のネゴシエーションを試みます。別の証明書を指定するには、利用可能なフォーマットについてSSLServerCert プロパティを参照してください。

XML Connector for CData Sync

XML データソースへの接続

データソースに接続したら、DataModel を設定して、データ表現とデータ構造をより密接に一致させます。

XML への接続

以下は、Sync App のデフォルトのデータモデリング設定を使用したXML ファイルまたはストリームへの接続文字列の例です。

サービスプロバイダ URI 形式 接続例
ローカル Single File Path (One table)

file://localPath/file.xml

Directory Path (One aggregated table from all files)

file://localPath

URI=C:/folder1/file.xml;
HTTP またはHTTPS http://remoteStream

https://remoteStream

URI=http://www.host1.com/streamname1;
Amazon S3 Single File Path (One table)

s3://remotePath/file.xml

Directory Path (One aggregated table from all files)

s3://remotePath

URI=s3://bucket1/folder1/file.xml; AWSSecretKey=secret1; AWSRegion=OHIO;
Azure Blob Storage azureblob://mycontainer/myblob/ URI=azureblob://mycontainer/myblob/; AzureStorageAccount=myAccount; AzureAccessKey=myKey;

URI=azureblob://mycontainer/myblob/; AzureStorageAccount=myAccount; AuthScheme=OAuth;

Google Drive Single File Path (One table)

gdrive://remotePath/file.xml

gdrive://SharedWithMe/remotePath/file.xml

Directory Path (One aggregated table from all files)

gdrive://remotePath

gdrive://SharedWithMe/remotePath

URI=gdrive://folder1/file.xml; AuthScheme=OAuth;

URI=gdrive://SharedWithMe/folder1/file.xml; AuthScheme=OAuth;

OneDrive Single File Path (One table)

onedrive://remotePath/file.xml

onedrive://SharedWithMe/remotePath/file.xml

Directory Path (One aggregated table from all files)

onedrive://remotePath

onedrive://SharedWithMe/remotePath

URI=onedrive://folder1/file.xml; AuthScheme=OAuth;

URI=onedrive://SharedWithMe/folder1/file.xml; AuthScheme=OAuth;

Box Single File Path (One table)

box://remotePath/file.xml

Directory Path (One aggregated table from all files)

box://remotePath

URI=box://folder1/file.xml; AuthScheme=OAuth;
Dropbox Single File Path (One table)

dropbox://remotePath/file.xml

Directory Path (One aggregated table from all files)

dropbox://remotePath

URI=dropbox://folder1/file.xml; AuthScheme=OAuth; OAuthClientId=oauthclientid1; OAuthClientSecret=oauthcliensecret1; CallbackUrl=http://localhost:12345;
SharePoint SOAP Single File Path (One table)

sp://remotePath/file.xml

Directory Path (One aggregated table from all files)

sp://remotePath

URI=sp://Documents/folder1/file.xml; User=user1; Password=password1; StorageBaseURL=https://subdomain.sharepoint.com;
SharePoint REST Single File Path (One table)

sprest://remotePath/file.xml

Directory Path (One aggregated table from all files)

sprest://remotePath

URI=sprest://Documents/folder1/file.xml; AuthScheme=OAuth; StorageBaseURL=https://subdomain.sharepoint.com;
FTP またはFTPS Single File Path (One table)

ftp://server:port/remotePath/file.xml

ftps://server:port/remotepath/file.xml

Directory Path (One aggregated table from all files)

ftp://server:port/remotePath

ftps://server:port/remotepath;

URI=ftps://localhost:990/folder1/file.xml; User=user1; Password=password1;
SFTP Single File Path (One table)

sftp://server:port/remotePath/file.xml

Directory Path (One aggregated table from all files)

sftp://server:port/remotePath

URI=sftp://127.0.0.1:22/folder1/file.xml User=user1; Password=password1;

URI=sftp://127.0.0.1:22/folder1/file.xml SSHAuthmode=PublicKey; SSHClientCert=myPrivateKey

Azure Data Lake Store Gen1 adl://remotePath/file.xml

adl://Account.azuredatalakestore.net@remotePath/file.xml

URI=adl://folder1/file.xml; AuthScheme=OAuth; AzureStorageAccount=myAccount; AzureTenant=tenant;

URI=adl://myAccount.azuredatalakestore.net@folder1/file.xml; AuthScheme=OAuth; AzureTenant=tenant;

AzureDataLakeStoreGen2 abfs://myfilesystem/remotePath/file.xml

abfs://[email protected]/remotepath/file.xml

URI=abfs://myfilesystem/folder1/file.xml; AzureStorageAccount=myAccount; AzureAccessKey=myKey;

URI=abfs://[email protected]/folder1/file.xml; AzureAccessKey=myKey;

AzureDataLakeStoreGen2 with SSL abfss://myfilesystem/remotePath/file.xml

abfss://[email protected]/remotepath/file.xml

URI=abfss://myfilesystem/folder1/file.xml; AzureStorageAccount=myAccount; AzureAccessKey=myKey;

URI=abfss://[email protected]/folder1/file.xml; AzureAccessKey=myKey;

Wasabi Single File Path (One table)

wasabi://bucket1/remotePath/file.xml

Directory Path (One aggregated table from all files)

wasabi://bucket1/remotePath

URI=wasabi://bucket/folder1/file.xml; AccessKey=token1; SecretKey=secret1; Region='us-west-1';
Google Cloud Storage Single File Path (One table)

gs://bucket/remotePath/file.xml

Directory Path (One aggregated table from all files)

gs://bucket/remotePath

URI=gs://bucket/folder1/file.xml; AuthScheme=OAuth; ProjectId=test;
Oracle Cloud Storage Single File Path (One table)

os://bucket/remotePath/file.xml

Directory Path (One aggregated table from all files)

os://bucket/remotePath

URI=os://bucket/folder1/file.xml; AccessKey='myKey'; SecretKey='mySecretKey'; OracleNameSpace='myNameSpace' Region='us-west-1';
Azure File Single File Path (One table)

azurefile://fileShare/remotePath/file.xml

Directory Path (One aggregated table from all files)

azurefile://fileShare/remotePath

URI=azurefile://bucket/folder1/file.xml; AzureStorageAccount='myAccount'; AzureAccessKey='mySecretKey';

URI=azurefile://bucket/folder1/file.xml; AzureStorageAccount='myAccount'; AzureSharedAccessSignature='mySharedAccessSignature';

IBM Object Storage Source Single File Path (One table)

ibmobjectstorage://bucket1/remotePath/file.xml

Directory Path (One aggregated table from all files)

ibmobjectstorage://bucket1/remotePath

URI=ibmobjectstorage://bucket/folder1/file.xml; AuthScheme='HMAC'; AccessKey=token1; SecretKey=secret1; Region='eu-gb';

URI=ibmobjectstorage://bucket/folder1/file.xml; ApiKey=key1; Region='eu-gb'; AuthScheme=OAuth; InitiateOAuth=GETANDREFRESH;

Hadoop Distributed File System Single File Path (One table)

webhdfs://host:port/remotePath/file.xml

Directory Path (One aggregated table from all files)

webhdfs://host:port/remotePath

URI=webhdfs://host:port/folder1/file.xml
Secure Hadoop Distributed File System Single File Path (One table)

webhdfss://host:port/remotePath/file.xml

Directory Path (One aggregated table from all files)

webhdfss://host:port/remotePath

URI=webhdfss://host:port/folder1/file.xml

XML データのモデル化

DataModel プロパティは、データをテーブルにどのように表現するかを制御するプロパティです。

  • Document (デフォルト):XML データのトップレベルのドキュメントビューをモデル化します。Sync App は、ネストされたオブジェクト配列を集約されたXML オブジェクトとして返します。
  • FlattenedDocuments:ネストされた配列オブジェクトと親オブジェクトを、単一テーブルに暗黙的に結合します。
  • Relational:ネストされたオブジェクト配列を、親ドキュメントにリンクする主キーと外部キーを含む個々の関連テーブルとして表示します。

次のステップ

  • 各DataModel の設定でデータセットをクエリする方法の例については、階層データの解析 を参照してください。
  • スキーマ検出のカスタマイズとXML へのSQL の実行方法については、XML データのモデリング を参照してください。
  • 高度な接続設定については、データアクセスのファインチューニング を参照してください。データモデリングの設定を微調整したり、ファイアウォールを介して接続したり、接続のトラブルシューティングを行います。

XML Connector for CData Sync

Amazon S3 への接続

接続の前に

AWS キーを取得

IAM ユーザーの認証情報を取得するには:
  1. IAM コンソールにサインインします。
  2. ナビゲーションペインでユーザーを選択します。
  3. ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してからセキュリティ認証情報タブを選択します。
AWS ルートアカウントの資格情報を取得するには:
  1. ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択します。
  3. 表示されたメニューでMy Security Credentials を選択します。
  4. ルートアカウントのアクセスキーを管理または作成するには、Continue to Security Credentials をクリックし、[Access Keys]セクションを展開します。

Amazon S3 への接続

データへの接続には、以下を設定してください。

  • AWSRegion:XML データがホストされているリージョンに設定。
  • StorageBaseURL(オプション):ベースとなるS3 サービスのURL が"amazonaws.com" と異なる場合のみ、そのURL を指定します。必ず完全なURL を指定してください。例:http://127.0.0.1:9000

Amazon S3 への認証

XML への接続に使用できる認証方法は、以下を含めいくつかあります。

  • ルートクレデンシャル
  • AWS ロール(EC2 インスタンスまたはルート認証の指定による)としてのAWS ロール
  • SSO(ADFS、Okta、PingFederate)
  • MFA
  • 一時クレデンシャル
  • クレデンシャルファイル

ルートクレデンシャル

アカウントのルートクレデンシャルで認証するには、次の設定パラメータを設定します。

  • AuthScheme:AwsRootKeys。
  • AWSAccessKey:AWS ルートアカウントに紐づいているアクセスキー。
  • AWSSecretKey:AWS ルートアカウントに紐づいているシークレットキー。

Note: この認証スキームの使用は、簡単なテスト以外ではAmazon では推奨されていません。アカウントのルート認証情報はユーザーの完全な権限を持つため、これが最も安全性の低い認証方法になります。

EC2 Instances

AuthScheme をAwsEC2Roles に設定します。

EC2 インスタンスからSync App を使用していて、そのインスタンスにIAM ロールが割り当てられている場合は、 認証にIAM ロールを使用できます。Sync App は自動的にIAM ロールの認証情報を取得し、それらを使って認証するため、AWSAccessKey およびAWSSecretKey を指定する必要はありません。

認証にIAM ロールも使用している場合は、さらに以下を指定する必要があります。

  • AWSRoleARN:認証したいロールのRole ARN を指定。これにより、Sync App は指定されたロールの認証情報を 取得しようと試みます。
  • AWSExternalId(オプション):別のAWS アカウントでロールを引き受ける場合にのみ必要です。

IMDSv2 サポート

XML Sync App は、IMDSv2 をサポートしています。IMDSv1 とは異なり、新バージョンでは認証トークンが必須です。エンドポイントおよびレスポンスは、両バージョンで同じです。

IMDSv2 では、XML Sync App はまずIMDSv2 メタデータトークンの取得を試み、それを使用してAWS メタデータエンドポイントを呼び出します。トークンを取得できない場合、Sync App はIMDSv1 を使用します。

AWS IAM Roles

AuthScheme をAwsIAMRoles に設定します。

多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。AWS ルートユーザーのAWSAccessKey およびAWSSecretKey を指定している場合、ロールは使用できない場合があります。

AWS ロールとして認証するには、次のプロパティを設定します。

  • AWSAccessKey:ロールを担うIAM ユーザーのアクセスキー。
  • AWSSecretKey:ロールを担うIAM ユーザーのシークレットキー。
  • AWSRoleARN:認証したいロールのRole ARN を指定。これにより、Sync App は指定されたロールの認証情報を 取得しようと試みます。
  • AWSExternalId(オプション):別のAWS アカウントでロールを引き受ける場合にのみ必要です。

ADFS

ADFS に接続するには、AuthScheme をADFS に設定し、次のプロパティを設定します。

  • User:ADFS ユーザー。
  • Password:ADFS ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。

ADFS への認証を行うには、次のSSOProperties を設定します。

  • RelyingParty:ADFS サーバーのRelying Party Identifier の値。

接続文字列の例:

AuthScheme=ADFS;User=username;Password=password;SSOLoginURL='https://sts.company.com';SSOProperties='RelyingParty=https://saml.salesforce.com';

ADFS 統合

ADFS 統合フローでは、現在ログインしているWindows ユーザーの資格情報で接続します。 ADFS 統合フローを使用するには、User およびPassword を指定せず、それ以外の設定は上記のADFS ガイドと同じ手順を実行してください。

Okta

Okta に接続するには、AuthScheme をOkta に設定し、次のプロパティを設定します。

  • User:Okta ユーザー。
  • Password:Okta ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。

Okta クライアントリクエストコンテキストをオーバーライドする信頼されたアプリケーションまたはプロキシを使用する場合、またはMFA を設定している場合は、Okta を使用して認証するためにSSOProperties を組み合わせて使用する必要があります。必要に応じて、以下のいずれかを設定します。

  • APIToken:Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合、これを顧客がOkta 組織で作成したAPI Token に設定します。
  • MFAType:MFA フローを設定した場合、次の対応するタイプのいずれかに設定します:OktaVerify、Email、またはSMS。
  • MFAPassCode:MFA フローを設定した場合は、有効なパスコードに設定します。
    これを空欄または無効な値に設定した場合、Sync App はユーザーのデバイスまたはE メールにワンタイムパスワードチャレンジを発行します。パスコードを受信後、取得したワンタイムパスワードをMFAPassCode 接続プロパティに設定する接続を再度開きます。
  • MFARememberDevice:デフォルトはTrue です。Okta は、MFA が必要な場合にデバイスを記憶させることをサポートします。設定された認証ポリシーに従ってデバイスの記憶が許可されている場合、Sync App はMFA 認証の有効期間を延長するデバイストークンを送信します。MFA を記憶させない場合は、この 変数をFalse に設定してください。

接続文字列の例:

AuthScheme=Okta;SSOLoginURL='https://example.okta.com/home/appType/0bg4ivz6cJRZgCz5d6/46';User=oktaUserName;Password=oktaPassword;

PingFederate に接続するには、AuthScheme をPingFederate に設定し、次のプロパティを設定します。

  • User:PingFederate ユーザー。
  • Password:PingFederate ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。
  • AWSRoleARN(オプション):複数のロールARN がある場合は、認可に使用するARN を指定します。
  • AWSPrincipalARN(オプション):複数のプリンシパルARN がある場合は、認可に使用するARN を指定します。
  • SSOExchangeUrl: The Partner Service Identifier URI configured in your PingFederate server instance under: SP Connections > SP Connection > WS-Trust > Protocol Settings. This should uniquely identify a PingFederate SP Connection, so it is a good idea to set it to your AWS SSO ACS URL. You can find it under AWS SSO > Settings > View Details next to the Authentication field.
  • SSOProperties(オプション):Amazon S3へのリクエストにユーザー名とパスワードを認可ヘッダーとして含める場合は、Authscheme=Basic。

SSOLoginURL 用の相互SSL 認証(WS-Trust STS エンドポイント)を有効化するには、次の SSOProperties を設定します。

  • SSLClientCert
  • SSLClientCertType
  • SSLClientCertSubject
  • SSLClientCertPassword

接続文字列の例:

authScheme=pingfederate;SSOLoginURL=https://mycustomserver.com:9033/idp/sts.wst;SSOExchangeUrl=https://us-east-1.signin.aws.amazon.com/platform/saml/acs/764ef411-xxxxxx;user=admin;password=PassValue;AWSPrincipalARN=arn:aws:iam::215338515180:saml-provider/pingFederate;AWSRoleArn=arn:aws:iam::215338515180:role/SSOTest2;

多要素認証(MFA)

多要素認証を必要とするユーザーおよびロールには、以下を指定してください。

  • AuthScheme:AwsMFA。
  • CredentialsLocation:MFA クレデンシャルが保存される設定ファイルの場所。詳しくは、接続文字列オプションのCredentials File Location のページを参照してください。
  • MFASerialNumber:MFA デバイスが使用されている場合は、そのシリアル番号。
  • MFAToken:MFA デバイスから利用できる一時トークン。
(すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、追加で以下を指定する必要があります。
  • AWSAccessKey:MFA が発行されるIAM ユーザーのアクセスキー。
  • AWSSecretKey:MFA が発行されるIAM ユーザーのシークレットキー。
認証にIAM ロールも使用している場合は、さらに以下を指定する必要があります。
  • AWSRoleARN:認証したいロールのRole ARN を指定。これにより、Sync App はMFA を使用して指定されたロールの認証情報を 取得しようと試みます。
  • AWSExternalId(オプション):別のAWS アカウントでロールを引き受ける場合にのみ必要です。
これにより、Sync App は一時的な認証情報を取得するために、リクエストでMFA 認証情報を送信します。

Note: 一時的な認証情報の有効期間(デフォルトは3600秒)を制御するには、TemporaryTokenDuration プロパティを設定します。

一時クレデンシャル

一時クレデンシャルで認証するには、次を設定します。

  • AuthScheme:AwsTempCredentials。
  • AWSAccessKey:ロールを担うIAM ユーザーのアクセスキー。
  • AWSSecretKey:ロールを担うIAM ユーザーのシークレットキー。
  • AWSSessionToken:一時クレデンシャルと共に提供されるAWS のセッショントークン。 詳細はAWS Identity and Access Management ユーザーガイド を参照してください。

Sync App は、一時クレデンシャルの有効期間中、長期的な認証情報(IAM ユーザー認証情報など)によって提供されるものと同じ権限を使用してリソースをリクエストできるようになりました。

一時クレデンシャルおよびIAM ロールの両方を使用して認証するには、上記のすべてのパラメータを設定し、さらに以下のパラメータを指定します。

  • AWSRoleARN:認証したいロールのRole ARN を指定。これにより、Sync App は指定されたロールの認証情報を取得しようと試みます。
  • AWSExternalId(オプション):別のAWS アカウントでロールを引き受ける場合にのみ必要です。

クレデンシャルファイル

認証にはクレデンシャルファイルを使用することができます。AccessKey/SecretKey 認証、一時クレデンシャル、ロール認証、またはMFA に関連するすべての設定が使用できます。 これを行うには、次のプロパティを設定して認証します。

  • AuthScheme:AwsCredentialsFile。
  • AWSCredentialsFile:クレデンシャルファイルの場所。
  • AWSCredentialsFileProfile(オプション):指定したクレデンシャルファイルから使用するプロファイルの名前。指定しない場合は、default という名前のプロファイルが使用されます。
詳細はAWS Command Line Interface ユーザーガイド を参照してください。

Azure AD

この設定では、2つの別個のAzure AD アプリケーションが必要になります。

  • シングルサインオンに使用される"XML" アプリケーション。
  • "XML" アプリケーションに対するuser_impersonation 権限を持つカスタムOAuth アプリケーション。(カスタムOAuth アプリの作成 を参照してください。)

Azure AD に接続するには、AuthScheme をAzureAD に設定し、次のプロパティを設定します。

  • OAuthClientId:アプリ登録の概要セクションにリストされている、コネクタアプリケーションのアプリケーションId。
  • OAuthClientSecret:コネクタアプリケーションのクライアントシークレット値。新しいクライアントシークレットを作成すると、Azure AD にこれが表示されます。
  • CallbackURL:コネクタアプリケーションのリダイレクトURI。例: https://localhost:33333。

Azure AD を認証するには、これらのSSOProperties を設定します。

  • Resource:アプリ登録の概要セクションにリストされている、XML アプリケーションのアプリケーションId URI。ほとんどの場合、これはカスタムXML ドメインのURL です。
  • AzureTenant:アプリケーションが登録されているAzure AD テナントのId。

接続文字列の例:

AuthScheme=AzureAD;OAuthClientId=3ea1c786-d527-4399-8c3b-2e3696ae4b48;OauthClientSecret=xxx;CallbackUrl=https://localhost:33333;SSOProperties='Resource=https://signin.aws.amazon.com/saml;AzureTenant=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';

XML Connector for CData Sync

Azure Blob Storage への接続

接続の前に

AzureBlob ユーザーの認証情報を取得するには、以下の手順に従ってください。

  1. ルートアカウントの認証情報を使用してAzure ポータル にサインインします。
  2. ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
  3. 設定でアクセスキーをクリックします。
  4. ページ上にストレージアカウント名とキーが表示されます。

Azure Blob Storage への接続

AzureStorageAccount をAzure Blob Storage アカウント名に設定します。

Azure Blob Storage への認証

Azure Blob Storage への認証には、アクセスキー、Shared Access Signature(SAS)、Azure AD ユーザー、Azure MSI、またはAzure サービスプリンシパルを使用できます。

アクセスキー

Azure アクセスキーで認証するには、以下のように設定します。

  • AuthScheme:AccessKey に設定。
  • AzureAccessKey:Azure Blob Storage アカウントに紐づいているストレージキーに設定。

共有アクセス署名(SAS)

共有アクセス署名(SAS)で認証するには以下を設定します。
  • AuthScheme:AzureStorageSAS に設定。
  • AzureSharedAccessSignature:Azure Blob Storage アカウントに紐づいているSAS に設定。
以下の手順で、AzureSharedAccessSignature を使用して共有アクセス署名を作成します。

  1. ルートアカウントの資格情報を使用してAzure ポータルにサインインします。(https://portal.azure.com/)
  2. ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
  3. 設定でShared Access Signature をクリックします。
  4. アクセス許可を設定します。
  5. トークンの有効期限を指定します。
  6. SAS の生成をクリックし、生成された共有アクセス署名をコピーします。
  7. AzureSharedAccessSignature を前のステップの共有アクセス署名に設定します。

AzureAD ユーザー

AuthScheme は、すべてのユーザーアカウントフローでAzureAD に設定する必要があります。

Azure サービスプリンシパル

Azure サービスプリンシパルとしての認証は、OAuth クライアントクレデンシャルフローを介して処理されます。直接のユーザー認証は行われません。代わりに、クレデンシャルはアプリケーション自体のためだけに作成されます。アプリで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。リソースへのアプリケーションのアクセスは、割り当てられたロールの権限によって制御されます。

AzureAD アプリとAzure サービスプリンシパルの作成

Azure サービスプリンシパルを使用して認証する場合、Azure AD テナントにAzure AD アプリケーションを作成して登録する必要があります。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

portal.azure.com の[アプリの登録]で[API のアクセス許可]に移動し、Microsoft Graph アクセス許可を選択します。アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。クライアントの資格情報認証時に使用されるアクセス許可は、[アプリケーションの許可]の下にあります。

アプリケーションへのロールの割り当て

サブスクリプションのリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。

  1. 検索バーでサブスクリプションサービスを検索・選択して、サブスクリプションページを開きます。
  2. アプリケーションを割り当てるサブスクリプションを選択します。
  3. アクセス制御 (IAM)を開き、追加 -> ロール割り当ての追加 を選択してロール割り当ての追加ページを開きます。
  4. 作成したAzure AD アプリに割り当てるロールとして、所有者を選択します。
認証の完了 クライアントシークレットと証明書のどちらを使用するかを選択し、以下の該当する手順に従ってください。

クライアントシークレット

次の接続プロパティを設定します。

  • AuthScheme:クライアントシークレットを使用する場合はAzureServicePrincipal。
  • InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。

証明書

次の接続プロパティを設定します。

  • AuthScheme:証明書を使用する場合はAzureServicePrincipalCert。
  • InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth 交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthJWTCert:JWT 証明書のストア。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類。

これで接続する準備が整いました。クライアント資格情報での認証は、他の接続同様に自動的に行われますが、ユーザーにプロンプトするウィンドウは表示されません。ユーザーコンテキストがないため、ブラウザのポップアップは必要ないからです。接続が行われ、内部的に処理されます。

Azure MSI

Azure Data Lake Storage のアクセス許可を持つAzure VM で接続する場合は、AuthScheme をAzureMSI に設定します。

Azure サービスプリンシパル

クライアントシークレットではなくサービスプリンシパルで認証したい場合は、クライアント証明書で認証できます。認証するには以下のように設定します。

  • AuthScheme:AzureServicePrincipal に設定。
  • AzureTenant:接続するテナントに設定。
  • OAuthGrantType:CLIENT に設定。
  • OAuthClientId:アプリ設定のクライアントId に設定。
  • OAuthJWTCert:JWT 証明書ストアに設定。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類に設定。

XML Connector for CData Sync

カスタムOAuth アプリの作成

カスタムAzureAD アプリケーションには、AzureAD とAzure サービスプリンシパルを使用するAzureAD の2種類があります。いずれもOAuth ベースです。

カスタムアプリケーションを作成するタイミング

CData はOAuth アプリケーション認証情報を製品に組み込んでおり、デスクトップアプリケーションまたはヘッドレスマシンから接続する際に使用できます。

以下の場合はユーザー自身のAzureAD アプリケーションクレデンシャルを選択できます。

  • 認証ダイアログのブランディングをコントロールしたいとき
  • ユーザー認証後にアプリケーションがユーザーをリダイレクトするためのリダイレクトURI をコントロールしたいとき
  • ユーザーからのリクエストに対する許可をカスタマイズしたいとき

カスタムAzureAD アプリケーション

カスタムAzureAD アプリケーションを使用して、サービスアカウントまたはユーザーアカウントで認証できます。カスタムAzureAD アプリケーションはいつでも作成できますが、デスクトップおよびヘッドレス接続は埋め込みOAuth をサポートしており、認証プロセスを簡略化できることに留意してください。埋め込みOAuth アプリケーションを使用するには「接続の確立」を参照してください。

カスタムAzureAD アプリの作成

下記の手順に従って、アプリケーションのAzureAD 値、OAuthClientId およびOAuthClientSecret を取得します。

  1. https://portal.azure.com にログインします。
  2. 左側のナビゲーションペインですべてのサービスを選択します。アプリの登録を検索して選択します。
  3. 新規登録をクリックします。
  4. アプリケーション名を入力し、目的のテナント設定を選択します。 Azure Active Directory でカスタムAzureAD アプリケーションを作成する場合、アプリケーションをシングルテナントまたはマルチテナントに定義できます。デフォルトのオプション[この組織ディレクトリ内のアカウントのみ]を選択する場合は、CData Sync App への接続を確立するときにAzureTenant 接続プロパティをAzure AD テナントのId に設定する必要があります。それ以外の場合は、認証に失敗しエラーが発生します。アプリケーションが個人使用のみの場合は、[この組織ディレクトリ内のアカウントのみ]で十分です。アプリケーションを配布する場合は、マルチテナントオプションのいずれか1つを選択してください。
  5. リダイレクトURL をSync App のデフォルトhttp://localhost:33333 に設定します。あるいは、任意の別のポートを指定して、CallbackURL を定義した正確なリプライURL に設定します。
  6. 登録をクリックして新しいアプリケーションを登録します。アプリケーション管理画面が自動的に開きます。OAuthClientId としてApplication (client) ID の値、AzureTenant としてDirectory (tenant) ID の値をメモします。
  7. [証明書とシークレット]セクションに移動して、アプリケーションの認証タイプを定義します。認証には、クライアントシークレットを使用する方法と、証明書を使用する方法の2種類があります。推奨されている認証方法は証明書を使用する方法です。
    • オプション1:証明書をアップロードする:[証明書とシークレット]で証明書のアップロードを選択し、ローカルマシンからアップロードする証明書を選択します。
    • オプション2:新しいアプリケーションシークレットを作成する:[証明書とシークレット]で新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットを保存すると、キーの値が表示されます。 表示は一度のみなのでこの値をコピーします。 これは、OAuthClientSecret として必要になります。
  8. API のアクセス許可 -> アクセス許可の追加をクリックします。ユーザーコンテキストなしでアプリを接続する予定の場合は、アプリケーションの許可(OAuthGrantType = CLIENT)を選択します。それ以外の場合は、委任されたアクセス許可を使用します。
  9. 変更を保存します。
  10. 管理者の同意が必要なアクセス許可([アプリケーションの許可]など)を使用することを選択した場合は、API のアクセス許可ページで現在のテナントから付与することができます。

Azure サービスプリンシパルカスタムアプリケーション

Azure サービスプリンシパルを使用して認証する場合は、カスタムAzureAD アプリケーションと必要なリソースにアクセスできるサービスプリンシパル両方の作成が必要です。次の手順に従って、カスタムAzureAD アプリケーションを作成し、Azure サービスプリンシパル認証用の接続プロパティを取得します。

Azure サービスプリンシパルでカスタムAzureAD アプリを作成

下記の手順に従って、アプリケーションのAzureAD 値を取得します。

  1. https://portal.azure.com にログインします。
  2. 左側のナビゲーションペインですべてのサービスを選択します。アプリの登録を検索して選択します。
  3. 新規登録をクリックします。
  4. アプリ名を入力し、任意のAzure AD ディレクトリ - マルチテナントを選択します。そして、リダイレクトURL をSync App のデフォルトhttp://localhost:33333 に設定します。
  5. アプリ作成後に、[概要]セクションに表示されているアプリケーション(クライアント)Id の値をコピーします。この値はOAuthClientId として使用されます。
  6. [証明書とシークレット]セクションに移動して、アプリの認証タイプを定義します。認証には、クライアントシークレットを使用する方法と、証明書を使用する方法の2種類があります。推奨されている認証方法は証明書による方法です。
    • オプション1 - 証明書をアップロードする:[証明書とシークレット]で証明書のアップロードを選択し、ローカルマシンからアップロードする証明書を選択します。
    • オプション2 - 新しいアプリケーションシークレットを作成する:[証明書とシークレット]で新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットを保存すると、キーの値が表示されます。 表示は一度のみなのでこの値をコピーします。これは、OAuthClientSecret として使用します。
  7. 認証タブで、必ずアクセストークン(暗黙的なフローに使用)を選択してください。

XML Connector for CData Sync

Azure Data Lake Storage への接続

Azure Data Lake Storage への接続

AzureStorageAccount をAzure Data Lake Storage アカウント名に設定します。

Azure Data Lake Storage への認証

Azure Data Lake Storage への認証には、アクセスキー、Shared Access Signature(SAS)、Azure AD ユーザー、Azure MSI、またはAzure サービスプリンシパルを使用できます。

アクセスキー

Azure アクセスキーで認証するには、以下のように設定します。

  • AuthScheme:AccessKey に設定。
  • AzureAccessKey:Azure Data Lake Storage アカウントに紐づいているストレージキーに設定。

Shared Access Signature(SAS)

共有アクセス署名(SAS)で認証するには以下を設定します。
  • AuthScheme:AzureStorageSAS に設定。
  • AzureSharedAccessSignature:Azure Blob Storage アカウントに紐づいているSAS に設定。
以下の手順で、AzureSharedAccessSignature を使用して共有アクセス署名を作成します。

  1. ルートアカウントの資格情報を使用してAzure ポータルにサインインします。(https://portal.azure.com/)
  2. ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
  3. 設定でShared Access Signature をクリックします。
  4. アクセス許可を設定します。
  5. トークンの有効期限を指定します。
  6. SAS の生成をクリックし、生成された共有アクセス署名をコピーします。
  7. AzureSharedAccessSignature を前のステップの共有アクセス署名に設定します。

AzureAD ユーザー

AuthScheme は、すべてのユーザーアカウントフローでAzureAD に設定する必要があります。

Azure サービスプリンシパル

Azure サービスプリンシパルとしての認証は、OAuth クライアントクレデンシャルフローを介して処理されます。直接のユーザー認証は行われません。代わりに、クレデンシャルはアプリケーション自体のためだけに作成されます。アプリで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。リソースへのアプリケーションのアクセスは、割り当てられたロールの権限によって制御されます。

AzureAD アプリとAzure サービスプリンシパルの作成

Azure サービスプリンシパルを使用して認証する場合、Azure AD テナントにAzure AD アプリケーションを作成して登録する必要があります。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

portal.azure.com の[アプリの登録]で[API のアクセス許可]に移動し、Microsoft Graph アクセス許可を選択します。アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。クライアントの資格情報認証時に使用されるアクセス許可は、[アプリケーションの許可]の下にあります。

アプリケーションへのロールの割り当て

サブスクリプションのリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。

  1. 検索バーでサブスクリプションサービスを検索・選択して、サブスクリプションページを開きます。
  2. アプリケーションを割り当てるサブスクリプションを選択します。
  3. アクセス制御 (IAM)を開き、追加 -> ロール割り当ての追加 を選択してロール割り当ての追加ページを開きます。
  4. 作成したAzure AD アプリに割り当てるロールとして、所有者を選択します。
認証の完了 クライアントシークレットと証明書のどちらを使用するかを選択し、以下の該当する手順に従ってください。

クライアントシークレット

次の接続プロパティを設定します。

  • AuthScheme:クライアントシークレットを使用する場合はAzureServicePrincipal。
  • InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。

証明書

次の接続プロパティを設定します。

  • AuthScheme:証明書を使用する場合はAzureServicePrincipalCert。
  • InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth 交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthJWTCert:JWT 証明書のストア。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類。

これで接続する準備が整いました。クライアント資格情報での認証は、他の接続同様に自動的に行われますが、ユーザーにプロンプトするウィンドウは表示されません。ユーザーコンテキストがないため、ブラウザのポップアップは必要ないからです。接続が行われ、内部的に処理されます。

Azure MSI

Azure Data Lake Storage のアクセス許可を持つAzure VM で接続する場合は、AuthScheme をAzureMSI に設定します。

Azure サービスプリンシパル

クライアントシークレットではなくサービスプリンシパルで認証したい場合は、クライアント証明書で認証できます。認証するには以下のように設定します。

  • AuthScheme:AzureServicePrincipal に設定。
  • AzureTenant:接続するテナントに設定。
  • OAuthGrantType:CLIENT に設定。
  • OAuthClientId:アプリ設定のクライアントId に設定。
  • OAuthJWTCert:JWT 証明書ストアに設定。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類に設定。

XML Connector for CData Sync

カスタムOAuth アプリの作成

カスタムAzureAD アプリケーションには、AzureAD とAzure サービスプリンシパルを使用するAzureAD の2種類があります。いずれもOAuth ベースです。

カスタムアプリケーションを作成するタイミング

CData はOAuth アプリケーション認証情報を製品に組み込んでおり、デスクトップアプリケーションまたはヘッドレスマシンから接続する際に使用できます。

以下の場合はユーザー自身のAzureAD アプリケーションクレデンシャルを選択できます。

  • 認証ダイアログのブランディングをコントロールしたいとき
  • ユーザー認証後にアプリケーションがユーザーをリダイレクトするためのリダイレクトURI をコントロールしたいとき
  • ユーザーからのリクエストに対する許可をカスタマイズしたいとき

カスタムAzureAD アプリケーション

カスタムAzureAD アプリケーションを使用して、サービスアカウントまたはユーザーアカウントで認証できます。カスタムAzureAD アプリケーションはいつでも作成できますが、デスクトップおよびヘッドレス接続は埋め込みOAuth をサポートしており、認証プロセスを簡略化できることに留意してください。埋め込みOAuth アプリケーションを使用するには「接続の確立」を参照してください。

カスタムAzureAD アプリの作成

下記の手順に従って、アプリケーションのAzureAD 値OAuthClientId およびOAuthClientSecret を取得します。

  1. https://portal.azure.com にログインします。
  2. 左側のナビゲーションペインですべてのサービスを選択します。アプリの登録を検索して選択します。
  3. 新規登録をクリックします。
  4. アプリケーション名を入力し、目的のテナント設定を選択します。 Azure Active Directory でカスタムAzureAD アプリケーションを作成する場合、アプリケーションをシングルテナントまたはマルチテナントに定義できます。デフォルトのオプション[この組織ディレクトリ内のアカウントのみ]を選択する場合は、CData Sync App への接続を確立するときにAzureTenant 接続プロパティをAzure AD テナントのId に設定する必要があります。それ以外の場合は、認証に失敗しエラーが発生します。アプリケーションが個人使用のみの場合は、[この組織ディレクトリ内のアカウントのみ]で十分です。アプリケーションを配布する場合は、マルチテナントオプションのいずれか1つを選択してください。
  5. リダイレクトURL をSync App のデフォルトhttp://localhost:33333 に設定します。あるいは、任意の別のポートを指定して、CallbackURL を定義した正確なリプライURL に設定します。
  6. 登録をクリックして新しいアプリケーションを登録します。アプリケーション管理画面が自動的に開きます。OAuthClientId としてApplication (client) ID の値、AzureTenant としてDirectory (tenant) ID の値をメモします。
  7. [証明書とシークレット]セクションに移動して、アプリケーションの認証タイプを定義します。認証には、クライアントシークレットを使用する方法と、証明書を使用する方法の2種類があります。推奨されている認証方法は証明書を使用する方法です。
    • オプション1:証明書をアップロードする:[証明書とシークレット]で証明書のアップロードを選択し、ローカルマシンからアップロードする証明書を選択します。
    • オプション2:新しいアプリケーションシークレットを作成する:[証明書とシークレット]で新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットを保存すると、キーの値が表示されます。 表示は一度のみなのでこの値をコピーします。 これは、OAuthClientSecret として必要になります。
  8. API のアクセス許可 -> アクセス許可の追加をクリックします。ユーザーコンテキストなしでアプリを接続する予定の場合は、アプリケーションの許可(OAuthGrantType = CLIENT)を選択します。それ以外の場合は、委任されたアクセス許可を使用します。
  9. 変更を保存します。
  10. 管理者の同意が必要なアクセス許可([アプリケーションの許可]など)を使用することを選択した場合は、API のアクセス許可ページで現在のテナントから付与することができます。

Azure サービスプリンシパルカスタムアプリケーション

Azure サービスプリンシパルを使用して認証する場合は、カスタムAzureAD アプリケーションと必要なリソースにアクセスできるサービスプリンシパル両方の作成が必要です。次の手順に従って、カスタムAzureAD アプリケーションを作成し、Azure サービスプリンシパル認証用の接続プロパティを取得します。

Azure サービスプリンシパルでカスタムAzureAD アプリを作成

下記の手順に従って、アプリケーションのAzureAD 値を取得します。

  1. https://portal.azure.com にログインします。
  2. 左側のナビゲーションペインですべてのサービスを選択します。アプリの登録を検索して選択します。
  3. 新規登録をクリックします。
  4. アプリ名を入力し、任意のAzure AD ディレクトリ - マルチテナントを選択します。そして、リダイレクトURL をSync App のデフォルトhttp://localhost:33333 に設定します。
  5. アプリ作成後に、[概要]セクションに表示されているアプリケーション(クライアント)Id の値をコピーします。この値はOAuthClientId として使用されます。
  6. [証明書とシークレット]セクションに移動して、アプリの認証タイプを定義します。認証には、クライアントシークレットを使用する方法と、証明書を使用する方法の2種類があります。推奨されている認証方法は証明書による方法です。
    • オプション1 - 証明書をアップロードする:[証明書とシークレット]で証明書のアップロードを選択し、ローカルマシンからアップロードする証明書を選択します。
    • オプション2 - 新しいアプリケーションシークレットを作成する:[証明書とシークレット]で新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットを保存すると、キーの値が表示されます。 表示は一度のみなのでこの値をコピーします。これは、OAuthClientSecret として使用します。
  7. 認証タブで、必ずアクセストークン(暗黙的なフローに使用)を選択してください。

XML Connector for CData Sync

Box への接続

Box への接続

Box への接続には、OAuth 認証標準を使用します。ユーザーアカウントまたはサービスアカウントで認証できます。組織全体のアクセススコープをSync App に許可するには、サービスアカウントが必要です。下記で説明するとおり、Sync App はこれらの認証フローをサポートします。

ユーザーアカウント(OAuth)

AuthScheme は、すべてのユーザーアカウントフローでOAuth に設定する必要があります。

サービスアカウントで認証する

この方法で認証するには、AuthScheme をOAuthJWT に設定します。

サービスアカウントには、ブラウザによるユーザー認証なしのサイレント認証があります。また、サービスアカウントを使用して、エンタープライズ全体のアクセススコープをSync App に委任することもできます。

このフローでは、OAuth アプリケーションを作成する必要があります。アプリの作成および認可については、カスタムOAuth アプリの作成 を参照してください。これでサービスアカウントにアクセス権があるBox データに接続できます。

次の接続プロパティを設定して、接続してください。

  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • OAuthJWTCertType:"PEMKEY_FILE" に設定。
  • OAuthJWTCert:生成した.pem ファイルのパスに設定。
  • OAuthJWTCertPassword:.pem ファイルのパスワードに設定。
  • OAuthJWTCertSubject:証明書ストア内の1番目の証明書を選択するには、"*" に設定。
  • OAuthJWTSubjectType:アプリケーション設定で選択した[Application Access Value]に応じて、[enterprise]または[user]に設定。この接続プロパティのデフォルト値は[enterprise]です。
  • OAuthJWTSubject:サブジェクトタイプが[enterprise]に設定されている場合は、これをエンタープライズID に設定します。[user]に設定されている場合は、アプリのユーザーID に設定します。
  • OAuthJWTPublicKeyId:アプリケーション設定の公開キーID に設定。
接続すると、Sync App はサービスアカウントでのOAuth フローを完了します。

XML Connector for CData Sync

カスタムOAuth アプリの作成

カスタムOAuth アプリケーションの作成

CData はOAuth アプリケーション認証情報を製品に組み込んでおり、から接続する際に使用できます。

独自の OAuth アプリケーション認証情報を使用することもできます。

  • 認証ダイアログのブランディングをコントロールしたいとき
  • ユーザー認証後にアプリケーションがユーザーをリダイレクトするためのリダイレクトURI をコントロールしたいとき
  • ユーザーからのリクエストに対する許可をカスタマイズしたいとき

手順

この手順では、カスタムOAuth アプリケーションを作成して登録し、OAuthClientId およびOAuthClientSecret の設定に使用される値を生成します。

Box エンタープライズ管理コンソールで:

  1. Box 開発者ダッシュボード にログインします。
  2. アプリの新規作成をクリックします。
  3. 必要に応じて、基本的なアプリケーション情報を指定します。
  4. アプリケーションの種類を指定します(例:カスタムアプリ)。
  5. 認証メソッドで、ユーザー認証(OAuth 2.0)を選択します。
  6. リダイレクトURI を設定します。
    • である場合、リダイレクトURI をhttp://localhost:33333か別のポート番号に設定してください。
  7. アプリの作成をクリックします。
  8. 次に、公開キーと秘密キーのペアを作成します。
    • 開発者コンソールからキーペアを作成するには:
      1. 開発者コンソールの「構成」タブに移動します。
      2. 公開キーの追加と管理までスクロールダウンします。
      3. 公開 / 秘密キーペアを生成をクリックします。Box はJSON ファイル形式でキーペアを作成し、そのファイルをデスクトップにダウンロードします。 その後、そのファイルをアプリケーションコードに移動させることができます。

        Note: Box は、セキュリティ上の理由から秘密キーのバックアップを行いません。公開 / 非公開JSON ファイルのバックアップに注意してください。秘密キーを忘れた場合は、キーペア全体をリセットする必要があります。

    • キーペアを手動で追加するには:
      1. ターミナルウィンドウを開き、以下のOpenSSL コマンドを実行します。
        openssl genrsa -des3 -out private.pem 2048
        openssl rsa -in private.pem -outform PEM -pubout -out public.pem

        Note: Windows 環境でOpenSSL を実行するには、Cygwin パッケージをインストールします。

      2. 開発者コンソールで、先ほど作成したカスタムOAuth アプリケーションの構成タブに移動します。
      3. 公開キーの追加と管理までスクロールダウンします。
      4. 公開キーを追加をクリックします。
      5. Verify and Save をクリックします。
  9. カスタムアプリケーションを使用する前に、Box 管理者はBox 管理コンソール内でそのアプリケーションを承認する必要があります。
    1. 開発者コンソール内のアプリケーションに移動します。
    2. 承認タブをクリックします。
    3. Enterprise へのアクセス権限に対する承認を得るためにアプリを送信というプロンプトが表示されたら、確認して送信をクリックします。
      Box エンタープライズ管理者が申請を承認します。
  10. 最後に、カスタムOAuth アプリケーションが要求するユーザー権限の範囲を選択します。

アプリケーションの作成と登録が完了したら、メインメニューから設定をクリックして設定にアクセスできます。 表示されるリダイレクトURI、クライアントID およびクライアントシークレットを控えておきます。これらの値は後で必要になります。

JWTアクセススコープの変更時

JWT アクセススコープを変更する場合は、エンタープライズ管理コンソールでアプリケーションを再認可する必要があります。

  1. メインメニューのアプリをクリックします。
  2. JWT アプリケーション名の横にある省略記号ボタンを選択します。
  3. メニューのReauthorize App を選択します。

XML Connector for CData Sync

Dropbox への接続

Dropbox への接続

Dropbox はOAuth 認証標準を利用しています。

Dropbox OAuth スコープ

CData の埋め込みOAuth アプリを使うか、カスタムOAuth アプリの作成 のどちらかを選択してください。

埋め込みアプリは以下のスコープを含みます。

  • account_info.read
  • file_requests.read
  • files.content.read
  • files.content.write
  • files.metadata.read
  • sharing.read
  • sharing.write

XML Connector for CData Sync

カスタムOAuth アプリの作成

カスタムOAuth アプリケーションを作成するタイミング

CData はOAuth アプリケーション認証情報を製品に組み込んでおり、から接続する際に使用できます。

以下の場合はユーザー自身のOAuth アプリケーションクレデンシャルを選択できます。

  • 認証ダイアログのブランディングをコントロールしたいとき
  • ユーザー認証後にアプリケーションがユーザーをリダイレクトするためのリダイレクトURI をコントロールしたいとき
  • ユーザーからのリクエストに対する許可をカスタマイズしたいとき

カスタムOAuth アプリの作成

  1. Dropbox 開発者ダッシュボード にログインして[アプリを作成]をクリックします。Dropbox API を選択します。アプリへのアクセスタイプはFull Dropbox を選択します。
  2. アプリを作成すると、アプリ設定を表示するメインメニューからConfiguration を見ることができます。
  3. アプリのSettings タブで、のちのSync App 設定のためにApp key とApp secret の値をメモしておきます。
  4. リダイレクトURI を設定し、後でSync App を設定するために指定された値を保存します。
    • を設定する際、リダイレクトURI をhttp://localhost:33333か別のポート番号に設定してください。
  5. アプリのPermissions タブで、アプリが要求するユーザーのアクセス許可の範囲を選択します。

XML のアプリ設定でこれ以上値を指定する必要はありません。

XML Connector for CData Sync

Google Cloud Storage への接続

Google Cloud Storage への接続

ProjectId プロパティを接続するプロジェクトのId に設定します。

Google Cloud Storage への認証

Sync App は、認証にユーザーアカウントおよびGCP インスタンスアカウントの使用をサポートします。

以下のセクションでは、Google Cloud Storage の利用可能な認証スキームについて説明します。

  • ユーザーアカウント(OAuth)
  • サービスアカウント(OAuthJWT)
  • GCP インスタンスアカウント

ユーザーアカウント(OAuth)

AuthScheme は、すべてのユーザーアカウントフローでOAuth に設定する必要があります。

Web アプリケーション

Web アプリケーション経由で接続する場合は、Google Cloud Storage にカスタムOAuth アプリケーションを作成および登録する必要があります。それからSync App を使用してOAuth トークンの値を取得および管理します。カスタムアプリケーションについて詳しくは、カスタムOAuth アプリの作成 を参照してください。

OAuth アクセストークンの取得

次の接続プロパティを設定し、OAuthAccessToken を取得します。

  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。

続いてストアドプロシージャを呼び出し、OAuth 交換を完了します。

  1. GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。CallbackURL インプットをアプリケーション設定で指定したコールバックURL に設定します。ストアドプロシージャがOAuth エンドポイントのURL を返します。
  2. ステップ1でストアドプロシージャが返したURL に移動します。カスタムOAuth アプリケーションにログインして、Web アプリケーションを認可します。認証されると、ブラウザはコールバックURL にリダイレクトします。
  3. GetOAuthAccessToken ストアドプロシージャを呼び出します。AuthMode をWEB に、Verifier インプットをコールバックURL のクエリ文字列の"code" パラメータに設定します。

アクセストークンとリフレッシュトークンを取得すると、データに接続し、OAuth アクセストークンを自動または手動でリフレッシュすることができるようになります。

OAuth アクセストークンの自動リフレッシュ

ドライバーがOAuth アクセストークンを自動的にリフレッシュするようにするには、最初のデータ接続で次のように設定します。

  • InitiateOAuth:REFRESH に設定。
  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • OAuthAccessToken:GetOAuthAccessToken によって返されたアクセストークンに設定。
  • OAuthRefreshToken:GetOAuthAccessToken によって返されたリフレッシュトークンに設定。
  • OAuthSettingsLocation:Sync App がOAuth トークン値を保存する場所に設定。これは接続間で維持されます。
次回のデータ接続では、OAuthAccessToken およびOAuthRefreshToken の値は、OAuthSettingsLocation から取得されます。

OAuth アクセストークンの手動リフレッシュ

データ接続時に手動でOAuth アクセストークンをリフレッシュするために必要な値は、OAuth リフレッシュトークンのみです。

GetOAuthAccessToken によって返されたExpiresIn パラメータ値が経過した後に、RefreshOAuthAccessToken ストアドプロシージャを使用し、手動でOAuthAccessToken をリフレッシュします。次の接続プロパティを設定します。

  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。

次に、RefreshOAuthAccessToken を呼び出し、OAuthRefreshToken にGetOAuthAccessToken によって返されたOAuth リフレッシュトークンを指定します。新しいトークンが取得できたら、OAuthAccessToken プロパティにRefreshOAuthAccessToken によって返された値を設定し、新しい接続をオープンします。

最後に、OAuth リフレッシュトークンを保存し、OAuth アクセストークンの有効期限が切れた後に手動でリフレッシュできるようにします。

ヘッドレスマシン

ドライバーを設定するため、ヘッドレスマシンでユーザーアカウントにOAuth を使用します。インターネットブラウザに対応した別の端末で認証する必要があります。

  1. 以下のオプションから選択します。
    • オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
    • オプション2:インターネットブラウザに対応したマシンにSync App をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。
  2. 次に、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにSync App を設定します。

オプション1:Verifier code を取得および交換

Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。

インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。

  1. 以下のオプションから選択します。
    • 埋め込みOAuth アプリケーションを使用する場合は、Google Cloud Storage OAuth エンドポイント をクリックし、ブラウザでエンドポイントを開きます。
    • カスタムOAuth アプリケーションを使用するには、以下のプロパティを設定し、認証URL を作成します。
      • InitiateOAuth:OFF に設定。
      • OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
      • OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
      次に、適切なCallbackURL を指定してGetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャによって返されたURL をブラウザで開きます。
  2. ログインして、Sync App にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
  3. verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定します。
次に、OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換する必要があります。次のプロパティを設定します。

ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。

  • InitiateOAuth:REFRESH に設定。
  • OAuthVerifier:verifier code に設定。
  • OAuthClientId:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントシークレットに設定。
  • OAuthSettingsLocation:これを設定すると、暗号化されたOAuth 認証値が指定された場所に永続化されます。

OAuth 設定ファイルが生成されたら、以下のように接続プロパティをリセットする必要があります。

  • InitiateOAuth:REFRESH に設定。
  • OAuthClientId:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントId に設定。
  • OAuthClientSecret:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
  • OAuthSettingsLocation:暗号化されたOAuth 認証値を含む場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所がSync App に読み書きのアクセス許可を与えることを確認してください。

オプション2:OAuth 設定を転送

ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバとの接続を作成し、インストールする必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。

「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。

接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。

ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。

  • InitiateOAuth:REFRESH に設定。
  • OAuthClientId:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントId に設定。
  • OAuthClientSecret:(カスタムアプリのみ)アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
  • OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所がSync App に読み書きのアクセス許可を与えることを確認してください。

GCP インスタンスアカウント

GCP 仮想マシン上で実行している場合は、Sync App は仮想マシンに関連付けられたサービスアカウントを使用して認証できます。 このモードを使用するには、AuthScheme をGCPInstanceAccount に設定します。

XML Connector for CData Sync

カスタムOAuth アプリの作成

カスタムOAuth アプリケーションの作成

CData はOAuth アプリケーション認証情報を製品に組み込んでおり、デスクトップアプリケーションまたはヘッドレスマシン経由でXML に接続する際に使用できます。

(OAuthAccessToken およびその他の設定パラメータを取得および設定する方法についての情報は、「XML への接続」の デスクトップ認証セクションを参照してください。)

ただし、Web 経由で接続するには、カスタムOAuth アプリケーションの作成が必要です。また、カスタムOAuth アプリケーションは、一般的に使用される3つの認証フローをすべてシームレスにサポートするため、これらの認証フロー用にカスタムOAuth アプリケーションを作成(独自のOAuth アプリケーションクレデンシャルを使用)することもできます。

カスタムOAuth アプリケーションは、次のような場合に有用です。

  • 認証ダイアログのブランディングをコントロールしたいとき
  • ユーザー認証後にアプリケーションがユーザーをリダイレクトするためのリダイレクトURI をコントロールしたいとき
  • ユーザーからのリクエストに対する許可をカスタマイズしたいとき

以下のセクションでは、Directory API を有効化し、ユーザーアカウント(OAuth)およびサービスアカウント(OAuth / JWT)用のカスタムOAuth アプリケーションを作成する方法について説明します。

Cloud Storage API を有効化

次の手順に従いCloud Storage API を有効化します。

  1. Google Cloud Console に移動します。
  2. 左側のナビゲーションメニューからライブラリを選択します。API ライブラリページが開きます。
  3. 検索ボックスに、"Cloud Storage API" と入力し、検索結果からCloud Storage API を選択します。
  4. Cloud Storage API ページで、有効にするをクリックします。

OAuth アプリケーションの作成

カスタムOAuth アプリケーションを作成して必要なOAuth 接続プロパティを取得するには、以下の手順に従ってください。

ユーザーアカウント(OAuth)

AuthScheme がOAuth であり、Web アプリケーション上で認証する必要があるユーザーの場合は、必ずカスタムOAuth アプリケーションを作成する必要があります。 (デスクトップおよびヘッドレスフローでのカスタムOAuth アプリケーションの作成は任意です。)

以下の手順に従います。

  1. Google Cloud Console に移動します。
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
  3. 左側のナビゲーションメニューで、認証情報を選択します。
  4. このプロジェクトに同意画面がまだ設定されていない場合は、同意画面を設定 をクリックして作成します。Google Workspace アカウントを使用しない場合、User Type が外部の同意画面の作成に制限され、ユーザーサポートメールとデベロッパーの連絡先情報を指定する必要があります。 追加情報は任意です。
  5. 認証情報ページで認証情報を作成 -> OAuth クライアントID を選択します。
  6. アプリケーションの種類メニューでウェブアプリケーションを選択します。
  7. カスタムOAuth アプリケーションの名前を指定します。
  8. 承認済みのリダイレクトURI の下にあるURI を追加をクリックし、リダイレクトURI を入力します。
  9. Enter をクリックし、続けて作成をクリックします。Cloud コンソールは認証情報ページに戻ります。
    ウィンドウが開き、クライアントId とクライアントシークレットが表示されます。
  10. 後でOAuthClientId とOAuthClientSecret として使用するために、クライアントId とクライアントシークレットを記録しておきます。

Note: クライアントシークレットはGoogle Cloud コンソールからアクセス可能です。

サービスアカウント(OAuthJWT)

サービスアカウント(AuthScheme OAuthJWT)をOAuth フローで使用することで、ドメイン内のユーザーの代わりにGoogle API にアクセスすることができます。 ドメイン管理者はドメイン全体のアクセスをサービスアカウントに委任することができます。

新しいサービスアカウントを作成するには:

  1. Google Cloud Console に移動します。
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
  3. 左側のナビゲーションメニューで、認証情報を選択します。
  4. 認証情報を作成 -> サービスアカウントを選択します。
  5. サービスアカウントの作成ページで、サービスアカウント名、サービスアカウントID、 および任意でサービスアカウントの説明を入力します。
  6. 完了をクリックします。Cloud コンソールは認証情報ページを再表示します。
  7. サービスアカウントセクションで、作成したサービスアカウントを選択します。
  8. キータブをクリックします。
  9. 鍵を追加 -> 新しい鍵を作成 をクリックします。
  10. サポートされているキータイプ(OAuthJWTCert およびOAuthJWTCertType を参照)を選択します。
  11. 作成をクリックします。キーは自動的にデバイスにダウンロードされ、キーに固有の追加情報が表示されます。
  12. 後で使用するために、追加情報を記録しておきます。

サービスアカウントフローを完了させるには、Google Cloud Console で秘密キーを生成します。サービスアカウントフローにおいて、ドライバーはOAuthAccessToken へのJSON Web Token (JWT) を交換します。秘密キーはJWT の署名に必要です。ドライバーには、サービスアカウントに付与されているのと同じ権限が与えられます。

XML Connector for CData Sync

Google Drive への接続

Google Drive への認証

Sync App は、認証にユーザーアカウントおよびGCP インスタンスアカウントの使用をサポートします。

以下のセクションでは、Google Drive の利用可能な認証スキームについて説明します。

  • ユーザーアカウント(OAuth)
  • サービスアカウント(OAuthJWT)
  • GCP インスタンスアカウント

ユーザーアカウント(OAuth)

AuthScheme は、すべてのユーザーアカウントフローでOAuth に設定する必要があります。

GCP インスタンスアカウント

GCP 仮想マシン上で実行している場合は、Sync App は仮想マシンに関連付けられたサービスアカウントを使用して認証できます。 このモードを使用するには、AuthScheme をGCPInstanceAccount に設定します。

XML Connector for CData Sync

カスタムOAuth アプリの作成

カスタムOAuth アプリケーションの作成

CData はOAuth アプリケーション認証情報を製品に組み込んでおり、デスクトップアプリケーションまたはヘッドレスマシン経由でXML に接続する際に使用できます。

(OAuthAccessToken およびその他の設定パラメータを取得および設定する方法についての情報は、「XML への接続」の デスクトップ認証セクションを参照してください。)

ただし、Web 経由で接続するには、カスタムOAuth アプリケーションの作成が必要です。また、カスタムOAuth アプリケーションは、一般的に使用される3つの認証フローをすべてシームレスにサポートするため、これらの認証フロー用にカスタムOAuth アプリケーションを作成(独自のOAuth アプリケーションクレデンシャルを使用)することもできます。

カスタムOAuth アプリケーションは、次のような場合に有用です。

  • 認証ダイアログのブランディングをコントロールしたいとき
  • ユーザー認証後にアプリケーションがユーザーをリダイレクトするためのリダイレクトURI をコントロールしたいとき
  • ユーザーからのリクエストに対する許可をカスタマイズしたいとき

以下のセクションでは、Directory API を有効化し、ユーザーアカウント(OAuth)およびサービスアカウント(OAuth / JWT)用のカスタムOAuth アプリケーションを作成する方法について説明します。

Google Drive API を有効化

次の手順に従いGoogle Drive API を有効化します。

  1. Google Cloud Console に移動します。
  2. 左側のナビゲーションメニューからライブラリを選択します。API ライブラリページが開きます。
  3. 検索ボックスに、"Google Drive API" と入力し、検索結果からGoogle Drive API を選択します。
  4. Google Drive API ページで、有効にするをクリックします。

OAuth アプリケーションの作成

カスタムOAuth アプリケーションを作成して必要なOAuth 接続プロパティを取得するには、以下の手順に従ってください。

ユーザーアカウント(OAuth)

AuthScheme がOAuth であり、Web アプリケーション上で認証する必要があるユーザーの場合は、必ずカスタムOAuth アプリケーションを作成する必要があります。 (デスクトップおよびヘッドレスフローでのカスタムOAuth アプリケーションの作成は任意です。)

以下の手順に従います。

  1. Google Cloud Console に移動します。
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
  3. 左側のナビゲーションメニューで、認証情報を選択します。
  4. このプロジェクトに同意画面がまだ設定されていない場合は、同意画面を設定 をクリックして作成します。Google Workspace アカウントを使用しない場合、User Type が外部の同意画面の作成に制限され、ユーザーサポートメールとデベロッパーの連絡先情報を指定する必要があります。 追加情報は任意です。
  5. 認証情報ページで認証情報を作成 -> OAuth クライアントID を選択します。
  6. アプリケーションの種類メニューでウェブアプリケーションを選択します。
  7. カスタムOAuth アプリケーションの名前を指定します。
  8. 承認済みのリダイレクトURI の下にあるURI を追加をクリックし、リダイレクトURI を入力します。
  9. Enter をクリックし、続けて作成をクリックします。Cloud コンソールは認証情報ページに戻ります。
    ウィンドウが開き、クライアントId とクライアントシークレットが表示されます。
  10. 後でOAuthClientId とOAuthClientSecret として使用するために、クライアントId とクライアントシークレットを記録しておきます。

Note: クライアントシークレットはGoogle Cloud コンソールからアクセス可能です。

サービスアカウント(OAuthJWT)

サービスアカウント(AuthScheme OAuthJWT)をOAuth フローで使用することで、ドメイン内のユーザーの代わりにGoogle API にアクセスすることができます。 ドメイン管理者はドメイン全体のアクセスをサービスアカウントに委任することができます。

新しいサービスアカウントを作成するには:

  1. Google Cloud Console に移動します。
  2. 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
  3. 左側のナビゲーションメニューで、認証情報を選択します。
  4. 認証情報を作成 -> サービスアカウントを選択します。
  5. サービスアカウントの作成ページで、サービスアカウント名、サービスアカウントID、 および任意でサービスアカウントの説明を入力します。
  6. 完了をクリックします。Cloud コンソールは認証情報ページを再表示します。
  7. サービスアカウントセクションで、作成したサービスアカウントを選択します。
  8. キータブをクリックします。
  9. 鍵を追加 -> 新しい鍵を作成 をクリックします。
  10. サポートされているキータイプ(OAuthJWTCert およびOAuthJWTCertType を参照)を選択します。
  11. 作成をクリックします。キーは自動的にデバイスにダウンロードされ、キーに固有の追加情報が表示されます。
  12. 後で使用するために、追加情報を記録しておきます。

サービスアカウントフローを完了させるには、Google Cloud Console で秘密キーを生成します。サービスアカウントフローにおいて、ドライバーはOAuthAccessToken へのJSON Web Token (JWT) を交換します。秘密キーはJWT の署名に必要です。ドライバーには、サービスアカウントに付与されているのと同じ権限が与えられます。

XML Connector for CData Sync

HTTP Streams への接続

HTTP(S) への認証

Sync App は、HTTP(S) ストリームに格納されたXML データへの接続を汎用的にサポートします。

ユーザー / パスワード、Digest アクセス、OAuth、OAuthJWT、OAuth PASSWORD フローなど、複数の認証方式に対応しています。

また、認証設定のないストリームに接続することも可能です。

認証なし

認証なしでHTTP(S)ストリームに接続するには、AuthScheme 接続プロパティをNone に設定します。

Basic

接続するには以下を設定します。

  • AuthScheme:Basic に設定。
  • User:HTTP(S) ストリームに紐づいているユーザー名に設定。
  • Password:HTTP(S) ストリームに紐づいているパスワードに設定。

Digest

接続するには以下を設定します。

  • AuthScheme:Digest に設定。
  • User:HTTP(S) ストリームに紐づいているユーザー名に設定。
  • Password:HTTP(S) ストリームに紐づいているパスワードに設定。

OAuth

AuthScheme をOAuth に設定します。

OAuth では認証するユーザーにブラウザでXML との通信を要求します。次のセクションで説明するとおり、Sync App はさまざまな方法でこれをサポートします。

次の手順を実行する前に、操作したいXML データを持つサービスにOAuth アプリを登録する必要があります。

ほとんどのサービスではカスタムアプリケーションを作成する場合、開発者登録をしてサービスのUI でアプリを作成する必要があります。

ただし、すべてのサービスに当てはまるわけではありません。アプリの作成をサービスプロバイダーに依頼しなければならない場合もあります。どんな場合でも、OAuthClientId、OAuthClientSecret、およびCallbackURL の値を取得する必要があります。

OAuth JWT

AuthScheme をOAuthJWT に設定します。

Sync App は、ユーザーが双方向のサインオンを実行できない状況で、認可グラントとしてのJWT の使用をサポートします。 次の接続プロパティを設定して、接続してください。

  • OAuthVersion:2.0 に設定。
  • OAuthAccessTokenURL:JWT がアクセストークンと交換されるURL に設定します。
  • OAuthJWTCert:使用する証明書に設定します。多くの場合、これはPEM またはPFX ファイルへのパスです。
  • OAuthJWTCertType:正しい証明書タイプに設定します。多くの場合、PEMKEY_FILE またはPFXFILE のいずれかです。
  • OAuthJWTCertPassword:証明書が暗号化されている場合、これを暗号化パスワードに設定します。
  • OAuthJWTIssuer:発行元に設定します。これはJWT のiss フィールドに相当します。

JWT 署名のアルゴリズムを直接設定できないことに注意してください。Sync App は、RS256 アルゴリズムにのみ対応しています。

Sync App は以下のフィールドを含むJWT を構築してOAuthAccessTokenURL にアクセストークンを送信します。

  • scope 提供されている場合、Scope から取得されます。
  • aud 提供されている場合、OAuthJWTAudience から取得されます。
  • iss OAuthJWTIssuer から取得されます。
  • iat これはJWT が生成された時間です。
  • exp これは、iat の値にOAuthJWTValidityTime の値を加えたものです。
  • sub 提供されている場合、OAuthJWTSubject から取得されます。

OAuthPassword

AuthScheme:OAuthPassword に設定。

OAuth では認証するユーザーにブラウザでXML との通信を要求します。次のセクションで説明するとおり、Sync App はさまざまな方法でこれをサポートします。

次の手順を実行する前に、操作したいXML データを持つサービスにOAuth アプリを登録する必要があります。

ほとんどのサービスではカスタムアプリケーションを作成する場合、開発者登録をしてサービスのUI でアプリを作成する必要があります。

ただし、すべてのサービスに当てはまるわけではありません。アプリの作成をサービスプロバイダーに依頼しなければならない場合もあります。どんな場合でも、OAuthClientId、OAuthClientSecret、およびCallbackURL の値を取得する必要があります。

次の接続プロパティを設定して、接続してください。

  • OAuthVersion:OAuth バージョン1.0 か2.0 のいずれかに設定します。
  • OAuthRequestTokenURL:OAuth 1.0 に必要です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。
  • OAuthAuthorizationURL:OAuth 1.0 および2.0 に必要です。これは、ユーザーがサービスにログインして、アプリケーションにアクセス許可を与えるURL です。OAuth 1.0 では、アクセス許可が付与されるとリクエストトークンが認可されます。
  • OAuthAccessTokenURL:OAuth 1.0 および2.0 に必要です。これは、アクセストークンがリクエストされるURL です。OAuth 1.0 では、認可されたリクエストトークンはアクセストークンと交換されます。
  • OAuthRefreshTokenURL:OAuth 2.0 に必要です。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンと新しいアクセストークンと交換します。データソースによっては、アクセストークンと同じURL である場合がありますので、注意してください。
  • OAuthClientId:アプリ設定のクライアントId に設定。これはコンシューマーキーと呼ばれることもあります。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。これはコンシューマーシークレットと呼ばれることもあります。
  • CallbackURL:http://localhost:33333 に設定。アプリケーション設定でリダイレクトURL を指定した場合には、一致している必要があります。
接続すると、Sync App はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。Sync App がOAuth プロセスを完了します。
  1. コールバックURL からアクセストークンを取得し、リクエストを認証します。
  2. アクセストークンの期限が切れたときにはリフレッシュしてください。
  3. OAuth 値を保存し、接続間で永続化されるようにします。

XML Connector for CData Sync

IBM Object Storage への接続

接続の前に

Cloud Object Storage の新規インスタンスの登録

IBM Cloud アカウントにCloud Object Storage がまだない場合は、以下の手順に従ってアカウントにSQL Query のインスタンスをインストールできます。

  1. IBM Cloud アカウントにログインします。
  2. Cloud Object Storage ページに移動し、インスタンス名を指定して作成をクリックします。作成したばかりのCloud Object Storage のインスタンスにリダイレクトされます。

API キー

IBM Cloud Object Storage に接続するにはApiKey が必要です。これは次のようにして取得できます。

  1. IBM Cloud アカウントにログインします。
  2. Platform API Keys ページに移動します。
  3. 中央右隅のCreate an IBM Cloud API Key をクリックして、新しいAPI キーを作成します。
  4. ポップアップウィンドウが表示されたら、API キー名を指定して作成をクリックします。ダッシュボードからは再びアクセスできなくなるため、ApiKey を控えておきます。

IBM Cloud Object Storage への接続

Region をIBM インスタンスリージョンに設定します。

IBM Cloud Object Storage への認証

HMAC またはOAuth のいずれかを使用して、IBM Cloud Object Storage への認証ができます。

HMAC

次のプロパティを設定して認証します。

  • AccessKey:IBM アクセスキー(ユーザー名)に設定。
  • SecretKey:IBM シークレットキーに設定。
次に例を示します。
ConnectionType=IBM Object Storage Source;URI=ibmobjectstorage://bucket1/folder1; AccessKey=token1; SecretKey=secret1; Region=eu-gb;

OAuth

OAuth 認証を使用して認証するには以下を設定します。

  • AuthScheme:OAuth に設定。
  • ApiKey:セットアップ中にメモしたIBM API キーに設定。
次に例を示します。
ConnectionType=IBM Object Storage Source;URI=ibmobjectstorage://bucket1/folder1; ApiKey=key1; Region=eu-gb; AuthScheme=OAuth; InitiateOAuth=GETANDREFRESH;

接続すると、Sync App がOAuth プロセスを完了します。

XML Connector for CData Sync

OneDrive への接続

OneDrive への接続

OneDrive への認証には、Azure AD ユーザー、MSI 認証、Azure サービスプリンシパルを使用できます。

AzureAD ユーザー

AuthScheme は、すべてのユーザーアカウントフローでAzureAD に設定する必要があります。

Azure サービスプリンシパル

Azure サービスプリンシパルとしての認証は、OAuth クライアントクレデンシャルフローを介して処理されます。直接のユーザー認証は行われません。代わりに、クレデンシャルはアプリケーション自体のためだけに作成されます。アプリで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。リソースへのアプリケーションのアクセスは、割り当てられたロールの権限によって制御されます。

AzureAD アプリとAzure サービスプリンシパルの作成

Azure サービスプリンシパルを使用して認証する場合、Azure AD テナントにAzure AD アプリケーションを作成して登録する必要があります。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

portal.azure.com の[アプリの登録]で[API のアクセス許可]に移動し、Microsoft Graph アクセス許可を選択します。アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。クライアントの資格情報認証時に使用されるアクセス許可は、[アプリケーションの許可]の下にあります。

アプリケーションへのロールの割り当て

サブスクリプションのリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。

  1. 検索バーでサブスクリプションサービスを検索・選択して、サブスクリプションページを開きます。
  2. アプリケーションを割り当てるサブスクリプションを選択します。
  3. アクセス制御 (IAM)を開き、追加 -> ロール割り当ての追加 を選択してロール割り当ての追加ページを開きます。
  4. 作成したAzure AD アプリに割り当てるロールとして、所有者を選択します。
認証の完了 クライアントシークレットと証明書のどちらを使用するかを選択し、以下の該当する手順に従ってください。

クライアントシークレット

次の接続プロパティを設定します。

  • AuthScheme:クライアントシークレットを使用する場合はAzureServicePrincipal。
  • InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。

証明書

次の接続プロパティを設定します。

  • AuthScheme:証明書を使用する場合はAzureServicePrincipalCert。
  • InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth 交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthJWTCert:JWT 証明書のストア。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類。

これで接続する準備が整いました。クライアント資格情報での認証は、他の接続同様に自動的に行われますが、ユーザーにプロンプトするウィンドウは表示されません。ユーザーコンテキストがないため、ブラウザのポップアップは必要ないからです。接続が行われ、内部的に処理されます。

Azure MSI

Azure Data Lake Storage のアクセス許可を持つAzure VM で接続する場合は、以下AuthScheme をAzureMSI に設定します。

Azure サービスプリンシパル

クライアントシークレットではなくサービスプリンシパルで認証したい場合は、クライアント証明書で認証できます。認証するには以下のように設定します。

  • AuthScheme:AzureServicePrincipal に設定。
  • AzureTenant:接続するテナントに設定。
  • OAuthGrantType:CLIENT に設定。
  • OAuthClientId:アプリ設定のクライアントId に設定。
  • OAuthJWTCert:JWT 証明書ストアに設定。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類に設定。

XML Connector for CData Sync

カスタムOAuth アプリの作成

カスタムAzureAD アプリケーションには、AzureAD とAzure サービスプリンシパルを使用するAzureAD の2種類があります。いずれもOAuth ベースです。

カスタムアプリケーションを作成するタイミング

CData はOAuth アプリケーション認証情報を製品に組み込んでおり、デスクトップアプリケーションまたはヘッドレスマシンから接続する際に使用できます。

以下の場合はユーザー自身のAzureAD アプリケーションクレデンシャルを選択できます。

  • 認証ダイアログのブランディングをコントロールしたいとき
  • ユーザー認証後にアプリケーションがユーザーをリダイレクトするためのリダイレクトURI をコントロールしたいとき
  • ユーザーからのリクエストに対する許可をカスタマイズしたいとき

カスタムAzureAD アプリケーション

カスタムAzureAD アプリケーションを使用して、サービスアカウントまたはユーザーアカウントで認証できます。カスタムAzureAD アプリケーションはいつでも作成できますが、デスクトップおよびヘッドレス接続は埋め込みOAuth をサポートしており、認証プロセスを簡略化できることに留意してください。埋め込みOAuth アプリケーションを使用するには「接続の確立」を参照してください。

カスタムAzureAD アプリの作成

下記の手順に従って、アプリケーションのAzureAD 値OAuthClientId およびOAuthClientSecret を取得します。

  1. https://portal.azure.com にログインします。
  2. 左側のナビゲーションペインですべてのサービスを選択します。アプリの登録を検索して選択します。
  3. 新規登録をクリックします。
  4. アプリケーション名を入力し、目的のテナント設定を選択します。 Azure Active Directory でカスタムAzureAD アプリケーションを作成する場合、アプリケーションをシングルテナントまたはマルチテナントに定義できます。デフォルトのオプション[この組織ディレクトリ内のアカウントのみ]を選択する場合は、CData Sync App への接続を確立するときにAzureTenant 接続プロパティをAzure AD テナントのId に設定する必要があります。それ以外の場合は、認証に失敗しエラーが発生します。アプリケーションが個人使用のみの場合は、[この組織ディレクトリ内のアカウントのみ]で十分です。アプリケーションを配布する場合は、マルチテナントオプションのいずれか1つを選択してください。
  5. リダイレクトURL をSync App のデフォルトhttp://localhost:33333 に設定します。あるいは、任意の別のポートを指定して、CallbackURL を定義した正確なリプライURL に設定します。
  6. 登録をクリックして新しいアプリケーションを登録します。アプリケーション管理画面が自動的に開きます。OAuthClientId としてApplication (client) ID の値、AzureTenant としてDirectory (tenant) ID の値をメモします。
  7. [証明書とシークレット]セクションに移動して、アプリケーションの認証タイプを定義します。認証には、クライアントシークレットを使用する方法と、証明書を使用する方法の2種類があります。推奨されている認証方法は証明書を使用する方法です。
    • オプション1:証明書をアップロードする:[証明書とシークレット]で証明書のアップロードを選択し、ローカルマシンからアップロードする証明書を選択します。
    • オプション2:新しいアプリケーションシークレットを作成する:[証明書とシークレット]で新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットを保存すると、キーの値が表示されます。 表示は一度のみなのでこの値をコピーします。 これは、OAuthClientSecret として必要になります。
  8. API のアクセス許可 -> アクセス許可の追加をクリックします。ユーザーコンテキストなしでアプリを接続する予定の場合は、アプリケーションの許可(OAuthGrantType = CLIENT)を選択します。それ以外の場合は、委任されたアクセス許可を使用します。
  9. 変更を保存します。
  10. 管理者の同意が必要なアクセス許可([アプリケーションの許可]など)を使用することを選択した場合は、API のアクセス許可ページで現在のテナントから付与することができます。

Azure サービスプリンシパルカスタムアプリケーション

Azure サービスプリンシパルを使用して認証する場合は、カスタムAzureAD アプリケーションと必要なリソースにアクセスできるサービスプリンシパル両方の作成が必要です。次の手順に従って、カスタムAzureAD アプリケーションを作成し、Azure サービスプリンシパル認証用の接続プロパティを取得します。

Azure サービスプリンシパルでカスタムAzureAD アプリを作成

下記の手順に従って、アプリケーションのAzureAD 値を取得します。

  1. https://portal.azure.com にログインします。
  2. 左側のナビゲーションペインですべてのサービスを選択します。アプリの登録を検索して選択します。
  3. 新規登録をクリックします。
  4. アプリ名を入力し、[任意のAzure AD ディレクトリ - マルチテナント]を選択します。そして、リダイレクトURL をSync App のデフォルトhttp://localhost:33333 に設定します。
  5. アプリ作成後に、[概要]セクションに表示されているアプリケーション(クライアント)Id の値をコピーします。この値はOAuthClientId として使用されます。
  6. [証明書とシークレット]セクションに移動して、アプリの認証タイプを定義します。認証には、クライアントシークレットを使用する方法と、証明書を使用する方法の2種類があります。推奨されている認証方法は証明書による方法です。
    • オプション1 - 証明書をアップロードする:[証明書とシークレット]で証明書のアップロードを選択し、ローカルマシンからアップロードする証明書を選択します。
    • オプション2 - 新しいアプリケーションシークレットを作成する:[証明書とシークレット]で新しいクライアントシークレットを選択し、有効期限を指定します。クライアントシークレットを保存すると、キーの値が表示されます。 表示は一度のみなのでこの値をコピーします。これは、OAuthClientSecret として使用します。
  7. 認証タブで、必ずアクセストークン(暗黙的なフローに使用)を選択してください。

XML Connector for CData Sync

SFTP への接続

SFTP への接続

SFTP に認証するには、ユーザーとパスワード、またはSSH 証明書を使用します。さらに、認証なしでの接続が有効なSFTP サーバーに接続することもできます。

認証なし

サーバーが認証なしでの接続に対応している場合、接続するには、SSHAuthMode をNone に設定します。

パスワード

SFTP サーバーに紐づいているユーザー資格情報を入力します。

  • SSHAuthMode:Password に設定。
  • SSHUser:SFTP サーバーに紐づいているユーザー名。
  • SSHPassword:ユーザーに紐付けられたパスワード。

SSH 証明書

接続するには以下を設定します。

  • SSHAuthMode:Public_Key に設定。
  • SSHClientCert:SSH 証明書をSSHClientCertType で指定した形式で指定(この接続プロパティの関連ドキュメントを参照してください)。
  • SSHClientCertType:SSHClientCert で指定されたキーストアの種類。
  • SSHClientCertPassword(オプション):証明書ストアパスワード。
  • SSHClientCertSubject(オプション):キーストアに複数のキーがある場合、ここで目的のキーを名前で指定します。

XML Connector for CData Sync

SharePoint Online への接続

SharePoint Online への接続(REST)

REST API では、以下の認証スキームがサポートされています。

  • AzureAD
  • MSI
  • AzureServicePrincipal

AzureAD

Azure Active Directory(AzureAD)は、OAuth を使用して認証する接続タイプです。OAuth では認証するユーザーにインターネットブラウザでXML との通信を要求します。下記で説明するとおり、本ドライバーはさまざまな方法でこれをサポートします。AuthScheme をAzureAD に設定します。以下で説明するAzure AD フローは、すでに設定済みであることを前提として書かれています。

Azure テナントの新しいAzureAD アプリケーションを承認する際、組織による管理者の同意が必要になる場合があります。すべてのAzureAD フローにおいて、AzureAD アプリケーションの初期インストールと使用の際は、管理者がそのAzure テナントのアプリケーションを承認する必要があります。

Azure サービスプリンシパル

Azure サービスプリンシパルとしての認証は、OAuth クライアントクレデンシャルフローを介して処理されます。直接のユーザー認証は行われません。代わりに、クレデンシャルはアプリケーション自体のためだけに作成されます。アプリで実行されるすべてのタスクは、デフォルトユーザーコンテキストなしで実行されます。リソースへのアプリケーションのアクセスは、割り当てられたロールの権限によって制御されます。

AzureAD アプリとAzure サービスプリンシパルの作成

Azure サービスプリンシパルを使用して認証する場合、Azure AD テナントにAzure AD アプリケーションを作成して登録する必要があります。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

portal.azure.com の[アプリの登録]で[API のアクセス許可]に移動し、Microsoft Graph アクセス許可を選択します。アクセス許可には2つの異なるアクセス許可セットがあります。委任されたアクセス許可とアプリケーションの許可です。クライアントの資格情報認証時に使用されるアクセス許可は、[アプリケーションの許可]の下にあります。

アプリケーションへのロールの割り当て

サブスクリプションのリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。

  1. 検索バーでサブスクリプションサービスを検索・選択して、サブスクリプションページを開きます。
  2. アプリケーションを割り当てるサブスクリプションを選択します。
  3. アクセス制御 (IAM)を開き、追加 -> ロール割り当ての追加 を選択してロール割り当ての追加ページを開きます。
  4. 作成したAzure AD アプリに割り当てるロールとして、所有者を選択します。
認証の完了 クライアントシークレットと証明書のどちらを使用するかを選択し、以下の該当する手順に従ってください。

クライアントシークレット

次の接続プロパティを設定します。

  • AuthScheme:クライアントシークレットを使用する場合はAzureServicePrincipal。
  • InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth の交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthClientId:アプリケーション設定のクライアントId。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレット。

証明書

次の接続プロパティを設定します。

  • AuthScheme:証明書を使用する場合はAzureServicePrincipalCert。
  • InitiateOAuth: GETANDREFRESH。InitiateOAuth を使えば、繰り返しOAuth 交換を行ったり、手動でOAuthAccessToken を設定する必要はなくなります。
  • AzureTenant:接続するテナント。
  • OAuthJWTCert:JWT 証明書のストア。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類。

これで接続する準備が整いました。クライアント資格情報での認証は、他の接続同様に自動的に行われますが、ユーザーにプロンプトするウィンドウは表示されません。ユーザーコンテキストがないため、ブラウザのポップアップは必要ないからです。接続が行われ、内部的に処理されます。

MSI

Azure VM 上でXML を実行している場合は、Managed Service Identity(MSI)の資格情報を利用して接続が可能です。

  • AuthScheme:AzureMSI に設定。

MSI 資格情報が認証用に自動的に取得されます。

Azure サービスプリンシパル

Azure サービスプリンシパルを使用して認証する場合、Azure AD テナントにアプリケーションを登録する必要があります。

アプリケーションへのロールの割り当て

サブスクリプションのリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。

  1. 検索バーでサブスクリプションサービスを検索・選択して、[サブスクリプション]ページを開きます。
  2. アプリケーションを割り当てる特定のサブスクリプションを選択します。
  3. [アクセス制御 (IAM)]を開き、[追加]->[ロール割り当ての追加]を選択して[ロール割り当ての追加]ページを開きます。
  4. 作成したAzure AD アプリに割り当てるロールとして、[所有者]を選択します。

Azure サービスプリンシパルを使用した認証

設定されたアプリ認証(クライアントシークレットまたは証明書)に応じて、以下のいずれかの接続プロパティグループを設定すると、接続できるようになります。

クライアントシークレットまたは証明書認証を選択する前に、以下を設定します。

  • AuthScheme:アプリ設定のAzureServicePrincipal に設定。
  • AzureTenant:接続するテナントに設定。
  • OAuthClientId:アプリ設定のクライアントId に設定。
  • OAuthGrantType:CLIENT に設定。

オプション1:クライアントシークレットを使用した認証

クライアントシークレットで認証するには、以下のように設定します。

  • OAuthClientId:アプリ設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。

オプション2:JWT 証明書を使用した認証

JWT 証明書で認証するには、以下のように設定します。

  • OAuthJWTCert:JWT 証明書ストアに設定。
  • OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類に設定。

SharePoint Online への接続(SOAP)

SOAP API では、以下の認証がサポートされています。

  • ユーザー資格情報
  • ADFS
  • Okta
  • OneLogin

ユーザー資格情報

ADFS

AuthScheme をADFS に設定します。次の接続プロパティを設定する必要があります。

  • User:ADFS ユーザーに設定。
  • Password:ユーザーのADFS パスワードに設定。
  • SSOLoginURL:ADFS サーバーのベースURL に設定。
以下は接続文字列の例です。
AuthScheme=ADFS;User=ADFSUserName;Password=ADFSPassword;URL='http://sharepointserver/mysite';

Okta

AuthScheme をOkta に設定します。Okta に接続するには、次の接続プロパティを使用します。

  • User:Okta ユーザーに設定。
  • Password:ユーザーのOkta パスワードに設定。
  • SSOLoginURL:Okta アプリケーションの埋め込みリンクに設定。

次は接続文字列の例です。

AuthScheme=Okta;User=oktaUserName;Password=oktaPassword;URL='http://sharepointserver/mysite';

OneLogin

AuthScheme をOneLogin に設定します。OneLogin への接続には、次の接続プロパティを使用します。

  • User:OneLogin ユーザーに設定。
  • Password:ユーザーのOneLogin パスワードに設定。

次は接続文字列の例です。

AuthScheme=OneLogin;User=OneLoginUserName;Password=OneLoginPassword;URL='http://sharepointserver/mysite';

XML Connector for CData Sync

SSO 接続

SSO 認証

サービスプロバイダ Okta OneLogin ADFS AzureAD
Amazon S3 Y Y Y
Azure Blob Storage
Azure Data Lake Store Gen1
Azure Data Lake Store Gen2
Azure Data Lake Store Gen2 with SSL
Google Drive
OneDrive
Box
Dropbox
SharePoint Online SOAP Y Y Y
SharePoint Online REST
Wasabi
Google Cloud Storage
Oracle Cloud Storage
Azure File

AzureAD

Azure AD の設定

この構成の背景にあるメインテーマはOAuth 2.0 On-Behalf-Of flow です。 これにはAzure AD アプリケーションが2つ必要です。

  1. 特定のサービスプロバイダーへのシングルサインオンプロセスに使用されるアプリケーション。
    • Amazon S3: このアプリケーションを作成する方法については、こちらのlink詳しい手順を参照してください。接続をテストして、Azure AD からAWS コンソールにログイン可能であることを確認してください。

      "Azure AD テストユーザーの割り当て" の手順は、ユーザーを割り当てる際にAWS ロールを選択できるように、プロビジョニング後まで保存しておきます。

  2. 前の手順で作成したSSO アプリケーションに対するuser_impersonation 権限を持つ「コネクタ」プリケーション。 [Azure Active Directory]->[アプリの登録]に進み、新しいアプリケーションを登録します。アプリケーションを登録したら、SSO アプリケーションへのAPI 呼び出しを許可する必要があります。 登録したアプリのAPI のアクセス許可セクションに移動して、[アクセス許可の追加]ボタンをクリックします。API 名またはアプリケーションId を指定してSSO アプリケーションのAPI を選択し、 user_impersonation アクセス許可を追加します。

CData ドライバーの共通プロパティ

次のSSOProperties がAzure Active Directory への認証に必要です。すべてのサービスプロバイダーに指定する必要があります。

  • Resource:アプリ登録の概要セクションにリストされている、SSO アプリケーションのアプリケーションId URI。
  • Tenant:アプリケーションが登録されているAzure AD テナントのId。この値はhere で確認できます。

OAuth 2.0 On-Behalf-Of フローからSSO SAML レスポンスを取得するので、次のOAuth 接続プロパティを指定する必要があります。

  • OAuthClientId:アプリ登録の概要セクションにリストされている、コネクタアプリケーションのアプリケーションId。
  • OAuthClientSecret:コネクタアプリケーションのクライアントシークレット値。新しいクライアントシークレットを作成すると、Azure AD にこれが表示されます(証明書 & シークレットのセクション)。

Amazon S3

Amazon S3 サービスプロバイダーに接続するときは、共通プロパティに加えて、次のプロパティを指定する必要があります。

  • AuthScheme:AuthScheme をAzureAD に設定します。
  • AWSRoleARN:IAM ロールのARN。IAM ロールの概要ページに示されています。
  • AWSPrincipalARN:ID プロバイダーのARN。ID プロバイダーの概要ページに示されています。
次は接続文字列の例です。
AuthScheme=AzureAD;InitiateOAuth=GETANDREFRESH;OAuthClientId=d593a1d-ad89-4457-872d-8d7443aaa655;OauthClientSecret=g9-oy5D_rl9YEKfN-45~3Wm8FgVa2F;SSOProperties='Tenant=94be7-edb4-4fda-ab12-95bfc22b232f;Resource=https://signin.aws.amazon.com/saml;';AWSRoleARN=arn:aws:iam::2153385180:role/AWS_AzureAD;AWSPrincipalARN=arn:aws:iam::215515180:saml-provider/AzureAD;

OneLogin

OneLogin の設定

特定のプロバイダーへのシングルサインオン処理に使用するアプリケーションを、作成する必要があります。

  • SharePoint SOAP: このアプリケーションを作成する方法については、こちらのlink詳しい手順を参照してください。接続をテストして、OneLogin からOffice 365 にログイン可能であることを確認してください。 アプリケーション内でWS-Trust を有効化してください。有効化されていない場合、CData ドライバーは接続できません。

SharePoint SOAP

以下のプロパティは、SharePoint SOAP サービスプロバイダーに接続する際には指定する必要があります。

  • AuthScheme:AuthScheme をOneLogin に設定。
  • User:OneLogin アカウントのユーザー名。
  • Password:OneLogin アカウントのパスワード。
  • SSOProperties:
    • Domain(オプション):SSO のドメインで設定されたドメインがUser のドメインと異なる場合には、このプロパティを設定する必要がある場合があります。
次は接続文字列の例です。
AuthScheme='OneLogin';User=test;Password=test;SSOProperties='Domain=test.cdata;';

Okta

Okta の設定

特定のプロバイダーへのシングルサインオン処理に使用するアプリケーションを、作成する必要があります。

  • SharePoint SOAP: このアプリケーションを作成してSSO を設定する方法については、こちらのlink詳しい手順を参照してください。接続をテストして、Okta からOffice 365 にログイン可能であることを確認してください。 アプリケーション内でWS-Federation を使用してSSO を設定してください。設定されていない場合、CData ドライバーは接続できません。
  • Amazon S3: このアプリケーションを作成してSSO を設定する方法については、こちらのlink詳しい手順を参照してください。接続をテストして、Okta からAWS にログイン可能であることを確認してください。 アプリケーション内でSAML 2.0でSSO を設定してください。設定されていない場合、CData ドライバーは接続できません。 Okta アプリで割り当てられたAWS ロールが、接続するS3バケットにアクセスできることを確認します。

SharePoint SOAP

以下のプロパティは、SharePoint SOAP サービスプロバイダーに接続する際には指定する必要があります。

  • AuthScheme:AuthScheme をOkta に設定。
  • User:Okta アカウントのユーザー名。
  • Password:Okta アカウントのパスワード。
  • SSOProperties:
    • Domain(オプション):SSO のドメインで設定されたドメインがUser のドメインと異なる場合には、このプロパティを設定する必要がある場合があります。
次は接続文字列の例です。
AuthScheme='Okta';User=test;Password=test;SSOProperties='Domain=test.cdata;';

Amazon S3

以下のプロパティは、Amazon S3サービスプロバイダーに接続する際には指定する必要があります。

  • AuthScheme:AuthScheme をOkta に設定。
  • User:Okta アカウントのユーザー名。
  • Password:Okta アカウントのパスワード。
  • SSOLoginURL:AWS Okta SSO アプリの埋め込みURL に設定。
  • AWSRoleARN(オプション):IAM ロールのARN。IAM ロールの概要ページに示されています。
  • AWSPrincipalARN(オプション):ID プロバイダーのARN。ID プロバイダーの概要ページに示されています。
  • SSOProperties:
    • APIToken(オプション):顧客がOkta 組織で作成したAPI Token に設定。Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合に使用してください。
次は接続文字列の例です。
AuthScheme=Okta;User=OktaUser;Password=OktaPassword;SSOLoginURL='https://{subdomain}.okta.com/home/amazon_aws/0oan2hZLgQiy5d6/272';

ADFS

ADFS の設定

特定のプロバイダーへのシングルサインオン処理に使用するアプリケーションを、作成する必要があります。

  • SharePoint SOAP: Office 365 のシングルサインオン用にADFS を設定するには、こちらのlink詳しい手順を参照してください。接続をテストして、ADFS からOffice 365 にログイン可能であることを確認してください。
  • Amazon S3: AWS のシングルサインオン用にADFS を設定するには、こちらのlink詳しい手順を参照してください。接続をテストして、ADFS からAWS にログイン可能であることを確認してください。

SharePoint SOAP

以下のプロパティは、SharePoint SOAP サービスプロバイダーに接続する際には指定する必要があります。

  • AuthScheme:AuthScheme をADFS に設定。
  • User:ADFS アカウントのユーザー名。
  • Password:ADFS アカウントのパスワード。
  • SSOProperties:
    • Domain(オプション):SSO のドメインで設定されたドメインがUser のドメインと異なる場合には、このプロパティを設定する必要がある場合があります。
次は接続文字列の例です。
AuthScheme='ADFS';User=test;Password=test;SSOProperties='Domain=test.cdata;';

Amazon S3

以下のプロパティは、SharePoint SOAP サービスプロバイダーに接続する際には指定する必要があります。

  • AuthScheme:AuthScheme をADFS に設定。
  • SSOLoginURL:ADFS インスタンスのURL に設定。
  • User:ADFS アカウントのユーザー名。
  • Password:ADFS アカウントのパスワード。
  • AWSRoleARN(オプション):IAM ロールのARN。IAM ロールの概要ページに示されています。
  • AWSPrincipalARN(オプション):ID プロバイダーのARN。ID プロバイダーの概要ページに示されています。
次は接続文字列の例です。
AuthScheme=ADFS;User=username;Password=password;SSOLoginURL='https://sts.company.com';
ADFS 統合

ADFS 統合フローでは、現在ログインしているWindows ユーザーの資格情報で接続します。 ADFS 統合フローを使用するには、User およびPassword を指定せず、それ以外の設定は上記のADFS ガイドと同じステップを実行してください。

XML Connector for CData Sync

データアクセスのファインチューニング

CData Sync App を使うと、より複雑な開発やネットワークトポロジに役立つきめ細かな制御が可能になります。次の接続プロパティを使用して、データアクセスを微調整したり、ファイアウォールを介して接続したり、接続のトラブルシューティングを行ったりできます。

リソースの場所

URI はXML のリソースの場所を指定するために使用されます。 URI プロパティを、次の内1つを指定するように設定してください。
  • 値が空の場合は、URL を自動的にカレントディレクトリ"./" への参照に割り当てます。XML フォルダへの明示的なパスは、実行中のアプリケーションの環境に依存します。
  • フォルダへのパス。
  • .zip、.tar、または.gz アーカイブファイルへのパス。
    • ファイルを含むディレクトリだけでなく、そのファイルも含めます。例: C:\Users\Public\Documents\CSVdata.zip
  • ファイルまたはストリームへのパス - この場合、SELECT * FROM streamedtable を実行してファイルをクエリできます。

テーブルのモデル化

次のプロパティを設定して、Sync App がXML をテーブルとしてモデル化する方法を制御します。

  • IncludeFiles:テーブルとしてモデル化されるファイル一式に含める、ファイル拡張子のカンマ区切りリストに設定します。(デフォルトでは、.xml および.txt ファイルがモデル化されます。)
    • ファイルの拡張子を、'.' を除いて大文字で指定します。例:"XML,TXT"
    • アーカイブファイルはサポートされており(ZIP、TAR、およびGZ)、フォルダのようにモデル化されます。
  • RowScanDepth:指定した深さまで行をスキャンして、データ型を自動的に決定するように設定します。

複数ファイルを単一テーブルにパースおよびマージ

Sync App は単一ディレクトリ内の複数のファイルの読み込みとパースをサポートし、データを単一の結果セットにマージします。

この機能を有効にするには、URI プロパティをファイルマスクのディレクトリ(例:C:\MyDataFiles\*.xml)、またはディレクトリ(例:C:\MyDataFiles)に設定できます。ディレクトリがURI として指定されている場合、IncludeFiles を使用して含めるファイルの種類を識別します。

この機能は、Google Drive (e.g. gdrive://remotepath/*.xml)、Amazon S3 (e.g. s3://remotepath/*.xml)、FTP (ftp://server:port/remotepath/*.xml) などクラウドベースのサービスプロバイダーでも利用できます。

URI をディレクトリに設定するときは、ディレクトリであることを示すために必ずスラッシュ (e.g. s3://remotepath/) を最後に含めてください。

複数のファイルを含めるために、URI のカンマ区切りのリストがサポートされています。

すべてのファイル(ファイル拡張子のないファイルを含む)を取得するには、'*' のファイルマスクを使用するか (e.g. s3://remotepath/*)、'*' エントリを含めるようにIncludeFiles を設定します。
拡張子のないファイルだけを含めるには、IncludeFiles を設定して'NOEXT' エントリを含めます。

ファイル一式をパースするとき、ファイルはキューに入れられます。
各ファイルはストリーミング形式で取得され、パースされます。各行はパースされるときにプッシュされます。
したがって、ファイルは決してメモリに格納されたり、ディスク上のテンポラリロケーションに格納されたりすることはありません。 そのため、必要なメモリ使用量が制限されます。

メタデータの検出

複数のファイルを読み込むとき、Sync App は最初に識別されたファイルをメタデータ検出に使用します。
パフォーマンス上の理由から、メタデータの検出には1つのファイルが使用されます。
最初に識別されたファイルに、部分的なXML データが含まれている場合 (ディレクトリ内の他のファイルと比較して)、他のファイルのカラム/データは返されないことがあります。
これは、Sync App が、メタデータ検出に使用される単一のファイルから、選択したファイルで使用可能なすべてのカラムを適切に識別できないためです。

これらのケースを回避するには、"MetadataDiscoveryURI" オプションをOther プロパティから設定できます(例:MetadataDiscoveryURI=file:///C:\MyDataFiles\main.xml)。
MetadataDiscoveryURI が指定された場合、Sync App は 指定されたURI を使用してテーブルとカラムを検出します。
メタデータが検出されると、URI の値がXML データの取得と解析に使用されます。

エラー処理

複数のファイルをパースする場合、ファイルをパースできない場合があります(無効なXML、ネットワーク接続の問題、など)。
そのような場合、Sync App は例外メッセージを返しませんが、ErrorInfo#TEMP という テンポラリテーブルにエラーを記録します。
これは、大きなバッチのファイルを読み込んでいる最中に失敗して、やり直しが発生しないためです。
代わりに、初期クエリが終了した後でテンポラリテーブル(ErrorInfo#TEMP)をクエリすることができます。
これにより、パースに失敗したファイルがあるかどうかを識別でき、失敗した要求を再試行して、それらを最初の結果セットとマージすることができるようになります。

エラーリストを取得するには、次のクエリを発行します:SELECT * FROM ErrorInfo#TEMP。
このテーブルには次の2つのカラムが含まれます:URI およびDescription。
URI には、失敗した1つのファイルのURI が含まれます(URI プロパティで設定して再試行できます)。
Description には、ファイルがパースに失敗した理由に関する説明が含まれています。エラーが発生しなかった場合、空の結果セットが返されます。

サブディレクトリの移動

Sync App は、ローカルファイルをパースするときにサブディレクトリの移動をサポートします。
この機能は、URI 値のディレクトリ名に'*' ワイルドカード文字を使用することで公開されます。

例えば、一意の名前(日付値など)を持つフォルダを含む'Data' ディレクトリがあり、それぞれに似たようなXML データファイルがあるとします。
URI を'file:///C:\Data\*\*.xml' に設定するか、ファイルマスクなしのディレクトリ 'file:///C:\Data\*' に設定することで、これらすべてのファイルを単一のテーブルに読み込むことができます。

また、ディレクトリの部分一致もサポートされています。
例えば、 '2018' で始まるフォルダ内のすべてのXML ファイルを取得するには、次のURI 値:file:///C:\Data\2018*\*.xml を使用できます。

Note:クラウドリソースに接続するときは、ディレクトリ名にワイルドカードを使用することはできません。

XML Connector for CData Sync

Kerberos の使用

Kerberos

Kerberos でXML への認証を行うには、AuthScheme をNEGOTIATE に設定します。

Kerberos 経由でXML への認証を行うには、認証プロパティを定義し、Kerberos が認証チケットを取得する方法を選択する必要があります。

Kerberos チケットの取得

Kerberos チケットは、依頼者のID を認証するために使用されます。正式なログイン / パスワードの代わりにチケットを使用することで、パスワードをローカルに保存したり、ネットワーク経由で送信したりする必要がなくなります。 ユーザーは、ローカルコンピュータでログインするか、 コマンドプロンプトでkinit USER と入力するたびに、再認証されます(チケットはリフレッシュされます)。

Sync App は、 KRB5CCNAME および / またはKerberosKeytabFile 変数が存在するかどうかに応じて、必要なKerberos チケットを取得する3 つの方法を提供します。

MIT Kerberos 資格情報キャッシュファイル

このオプションを使用すると、MIT Kerberos チケットマネージャーまたはkinit コマンドを使ってチケットを取得できます。このオプションでは、User またはPassword 接続プロパティを設定する必要はありません。

このオプションは、KRB5CCNAME がシステムに作成されている必要があります。

MIT Kerberos 資格情報キャッシュファイル経由でチケット検索を有効にするには:

  1. お使いの環境にKRB5CCNAME 変数が存在することを確認します。
  2. KRB5CCNAME を資格情報キャッシュファイルを指すパスに設定します。(例えば、C:\krb_cache\krb5cc_0 または/tmp/krb5cc_0 です。)資格情報キャッシュファイルは、MIT Kerberos チケットマネージャーを使用してチケットを生成するときに作成されます。
  3. チケットを取得するには:
    1. MIT Kerberos チケットマネージャーアプリケーションを開きます。
    2. Get Ticket をクリックします。
    3. プリンシパル名とパスワードを入力します。
    4. OK をクリックします。

    チケットの取得に成功すると、チケット情報がKerberos チケットマネージャーに表示され、クレデンシャルキャッシュファイルに保存されます。

Sync App はキャッシュファイルを使用してXML に接続するためのKerberos チケットを取得します。

Note: KRB5CCNAME を編集したくない場合は、KerberosTicketCache プロパティを使用してファイルパスを手動で設定することができます。この設定後に、Sync App は指定されたキャッシュファイルを使用してXML に接続するためのKerberos チケットを取得します。

Keytab ファイル

お使いの環境にKRB5CCNAME 環境変数がない場合、Keytab ファイルを使用してKerberos チケットを取得できます。

この方法を使用するには、User プロパティを目的のユーザー名に設定し、KerberosKeytabFile プロパティをユーザーに関連付けられたキータブファイルを指すファイルパスに設定します。

User およびPassword

お使いの環境にKRB5CCNAME 環境変数およびKerberosKeytabFile プロパティが設定されていない場合、ユーザーとパスワードの組み合わせを使用してチケットを取得できます。

この方法を使用するには、User およびPassword プロパティを、XML での認証に使用するユーザー / パスワードの組み合わせに設定します。

クロスレルム認証の有効化

より複雑なKerberos 環境では、複数のレルムおよびKDC サーバーが使用されるクロスレルム認証が必要になる場合があります。例えば、1つのレルム / KDC がユーザー認証に使用され、別のレルム / KDC がサービスチケットの取得に使用される場合です。

このようなクロスレルム認証を有効にするには、KerberosRealm およびKerberosKDC プロパティをユーザー認証に必要な値に設定します。また、KerberosServiceRealm およびKerberosServiceKDC プロパティを、 サービスチケットの取得に必要な値に設定します。

XML Connector for CData Sync

XML データのモデリング

In this section we will show how to control the various schemes that the Sync App offers to bridge the gap with relational SQL and XML services.The CData Sync App provides a managed way for you to use the two prevailing techniques for dealing with nested XML data:

  • Parsing the data structure and building a relational model based on the existing hierarchy.
  • Drilling down into the nested elements using horizontal and vertical flattening.

Parsing Hierarchical Data

By default, the Sync App automatically detects the rows in a document, so that you do not need to know the structure of the XML to query it with SQL.Set the DataModel property to choose a basic configuration of how the Sync App models the rows into tables.

Flattening Objects and Arrays into Rows

To flatten data, you only need to be familiar with two data structures:

  • Object:同じ階層で繰り返されない親要素。
  • Array:同じ階層で繰り返す要素。

people コレクションの次の例では、各ノードに子要素があるため、maintenance はオブジェクト配列です。

<maintenance>
  <date>07-17-2017</date>
  <desc>oil change</desc>
</maintenance>
<maintenance>
  <date>01-03-2018</date>
  <desc>new tires</desc>
</maintenance> 

自動スキーマ検出の設定

The Sync App discovers columns and data types by scanning the RowScanDepth count of XML objects in XML arrays.Set the FlattenObjects and FlattenArrays properties to configure how nested data is flattened into columns; see 自動スキーマ検出 for examples.

XML へのSQL の実行

フラット化でアクセスできるあらゆるリレーションへは、アドホックなSQL クエリを使ってもアクセスが可能です。The Sync App enables you to query nested data with the following capabilities:

  • 垂直フラット化:ネストされたオブジェクト配列に別のテーブルとしてアクセスします。
  • フリーフォームクエリ:どんなネストされた構造でもデータをフラット化せずにクエリできます
  • XML 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

スキーマのカスタマイズ

スキーマのカスタマイズ を使用すると、XML ドキュメントの上に選択されたリレーショナル構造を投射することもできます。これにより、カラム名、データ型、 ドキュメント内の値の位置を選択することができます。

システムカタログ

The システムテーブル reflect the schemas you configured, custom schemas or dynamically discovered.The Stored Procedures surface additional functionality in the Sync App's data processing operations that cannot be modeled as SELECT, INSERT, UPDATE, or DELETE.You can find the reported stored procedures defined in .rsb files in the folder specified by Location -- if Location is not specified, the db subfolder of the installation directory.

XML Connector for CData Sync

Raw データ

以下は、この章で使用されている生データです。データには人、所有する自動車、およびさまざまな保守サービスのエントリが含まれます。

<?xml version="1.0" encoding="UTF-8" ?>
<root>
  <rootAttr1>rootValue1</rootAttr1>
  <people>
    <personal>
      <age>20</age>
      <gender>M</gender>
      <name>
        <first>John</first>
        <last>Doe</last>
      </name>
    </personal>
    <jobs>support</jobs>
    <jobs>coding</jobs>
    <vehicles>
      <type>car</type>
      <model>Honda Civic</model>
      <insurance>
        <company>ABC Insurance</company>
        <policy_num>12345</policy_num>
      </insurance>
      <features>sunroof</features>
      <features>rims</features>
      <maintenance>
        <date>07-17-2017</date>
        <desc>oil change</desc>
      </maintenance>
      <maintenance>
        <date>01-03-2018</date>
        <desc>new tires</desc>
      </maintenance>
    </vehicles>
    <vehicles>
      <type>truck</type>
      <model>Dodge Ram</model>
      <insurance>
        <company>ABC Insurance</company>
        <policy_num>12345</policy_num>
      </insurance>
      <features>lift kit</features>
      <features>tow package</features>
      <maintenance>
        <date>08-27-2017</date>
        <desc>new tires</desc>
      </maintenance>
      <maintenance>
        <date>01-08-2018</date>
        <desc>oil change</desc>
      </maintenance>
    </vehicles>
    <addresses>
      <type>work</type>
      <zip>12345</zip>
    </addresses>
    <addresses>
      <type>home</type>
      <zip>12357</zip>
    </addresses>
    <source>internet</source>
  </people>
  <people>
    <personal>
      <age>24</age>
      <gender>F</gender>
      <name>
        <first>Jane</first>
        <last>Roberts</last>
      </name>
    </personal>
    <jobs>sales</jobs>
    <jobs>marketing</jobs>
    <source>phone</source>
    <vehicles>
      <type>car</type>
      <model>Toyota Camry</model>
      <insurance>
        <company>Car Insurance</company>
        <policy_num>98765</policy_num>
      </insurance>
      <features>upgraded stereo</features>
      <maintenance>
        <date>05-11-2017</date>
        <desc>tires rotated</desc>
      </maintenance>
      <maintenance>
        <date>11-03-2017</date>
        <desc>oil change</desc>
      </maintenance>
    </vehicles>
    <vehicles>
      <type>car</type>
      <model>Honda Accord</model>
      <insurance>
        <company>Car Insurance</company>
        <policy_num>98765</policy_num>
      </insurance>
      <features>custom paint</features>
      <features>custom wheels</features>
      <maintenance>
        <date>10-07-2017</date>
        <desc>new air filter</desc>
      </maintenance>
      <maintenance>
        <date>01-13-2018</date>
        <desc>new brakes</desc>
      </maintenance>
    </vehicles>
    <addresses>
      <type>home</type>
      <zip>98765</zip>
    </addresses>
    <addresses>
      <type>work</type>
      <zip>98753</zip>
    </addresses>
  </people>
  <rootAttr2>rootValue2</rootAttr2>
  <rootAttr3>rootValue3</rootAttr3>
  <rootAttr3>rootValue4</rootAttr3>
</root>

XML Connector for CData Sync

階層データの解析

The Sync App offers three basic configurations to model nested data in XML as tables.

  • フラット化されたドキュメントモデル:ネストされたオブジェクト配列を単一テーブルに暗黙的に結合します。
  • リレーショナルモデル:オブジェクト配列を、親ドキュメントにリンクする主キーと外部キーを含む個々のテーブルとしてモデル化します。
  • トップレベルのドキュメントモデル:Model a top-level view of an XML document.Nested object arrays are returned as XML aggregates.

XML Connector for CData Sync

フラット化されたドキュメントモデル

XML データ全体に単純にアクセスする必要があるユーザーにとっては、データを単一テーブルにフラット化することは最善のオプションです。このモードでは、Sync App はストリーミングを使用し、クエリごとにXML データを1回だけパースします。

オブジェクト配列を単一テーブルに結合

DataModel を"FlattenedDocuments" に設定すると、Sync App はオブジェクト配列ごとに別のテーブルを返しますが、暗黙的に親テーブルに結合します。ネストされた任意の兄弟XPath 値(同じ高さの子パス)は、SQL CROSS JOIN として扱われます。

例

以下は、Raw データ のサンプルドキュメントと、XPaths /root/people、/root/people/vehicles、/root/people/vehicles/maintenance に基づく解析のサンプルクエリとその結果です。これは、暗黙的にvehicles 要素をpeople 要素と結合し、暗黙的にvehicles 要素をmaintenance 要素と結合します。

接続文字列

次の接続文字列を使用して、この例ではRaw データ をクエリします。

URI=C:\people.txt;DataModel=FlattenedDocuments;XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance;'

クエリ

次のクエリは、各people 要素のネストされた要素をドリルします。XPath プロパティはXML パスとしてvehicles ノードを含んだため、vehicle の要素を明示的にクエリできます。

SELECT
  [personal.age] AS age,
  [personal.gender] AS gender,
  [personal.name.first] AS name_first,
  [personal.name.last] AS name_last,
  [source],
  [type],
  [model],
  [insurance.company] AS ins_company,
  [insurance.policy_num] AS ins_policy_num,
  [date] AS maint_date,
  [desc] AS maint_desc
FROM
  [people]

結果

記述されたパスに基づいて水平および垂直フラット化を行うと、各vehicle 要素はその親people 要素に暗黙的に結合され、各maintenance 要素はその親vehicle 要素に暗黙的に結合されます。

agegenderfirst_namelast_namesourcetypemodelins_companyins_policy_nummaint_datemaint_desc
20MJohnDoeinternetcarHonda CivicABC Insurance123452017-07-17oil change
20MJohnDoeinternetcarHonda CivicABC Insurance123452018-01-03new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452017-08-27new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452018-01-08oil change
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-05-11tires rotated
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-11-03oil change
24FJaneRobertsphonecarHonda AccordCar Insurance987652017-10-07new air filter
24FJaneRobertsphonecarHonda AccordCar Insurance987652018-01-13new brakes

関連項目

  • 自動スキーマ検出:テーブルスキーマに報告されたカラムを設定します。
  • フリーフォームクエリ:ドット表記を使用して、ネストされたデータを選択します。
  • 垂直フラット化:ネストされたデータを別々のテーブルとしてクエリします。
  • XML 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

XML Connector for CData Sync

トップレベルのドキュメントモデル

データのトップレベルドキュメントビューを使用すると、トップレベルの要素にすぐにアクセスできます。Sync App は、集計にネストされた要素を単一のカラムとして返します。

考慮すべき一つの側面はパフォーマンスです。ネストされた要素を処理してパースする時間とリソースを控えます。Sync App は、データを読み込むためにストリーミングを使用して、返されたデータを一度パースします。もう一つ考慮すべきは、ネストされた親要素に格納されているデータにアクセスする必要があることと、ツールやアプリケーションがXML を処理する能力です。

トップレベルドキュメントビューのモデリング

DataModel が"Document"(デフォルト)に設定されている場合、Sync App はデフォルトでトップレベルの要素である単一の要素のみをスキャンします。デフォルトのオブジェクトフラット化により、トップレベルの要素はカラムとして利用可能です。ネストされた要素は集計されたXML として返されます。

XPath を設定すると、トップレベル以外の要素を指定できます。

例

以下は、Raw データ のサンプルドキュメントに基づいたサンプルクエリとその結果です。クエリの結果、XPath "/root/people" に基づいた単一の"people" テーブルが作成されます。

接続文字列

DataModel 接続プロパティを"Document" に設定して次のクエリを実行し、サンプル結果セットを表示します。Sync App は以下のXPath 値のみをスキャンします。

URI=C:\people.txt;DataModel=Document;XPath='/root/people';

クエリ

次のクエリは、トップレベルの要素と車両要素のサブ要素を結果にプルします。

SELECT
  [personal.age] AS age,
  [personal.gender] AS gender,
  [personal.name.first] AS name_first,
  [personal.name.last] AS name_last,
  [source],
  [vehicles]
FROM
  [people]
  

結果

データのドキュメントビューでは、personal 要素が4カラムにフラット化され、source とvehicles 要素が個別のカラムとして返され、結果として6カラムのテーブルが作成されます。

agegendername_firstname_lastsourcevehicles
20MJohnDoeinternet
  <vehicles><type>car</type><model>Honda Civic</model><insurance><company>ABC Insurance</company><policy_num>12345</policy_num></insurance><features>sunroof</features><features>rims</features><maintenance><date>07-17-2017</date><desc>oil change</desc></maintenance><maintenance><date>01-03-2018</date><desc>new tires</desc></maintenance></vehicles><vehicles><type>truck</type><model>Dodge Ram</model><insurance><company>ABC Insurance</company><policy_num>12345</policy_num></insurance><features>lift kit</features><features>tow package</features><maintenance><date>08-27-2017</date><desc>new tires</desc></maintenance><maintenance><date>01-08-2018</date><desc>oil change</desc></maintenance></vehicles>
24FJaneRobertsphone
  <vehicles><type>car</type><model>Toyota Camry</model><insurance><company>Car Insurance</company><policy_num>98765</policy_num></insurance><features>upgraded stereo</features><maintenance><date>05-11-2017</date><desc>tires rotated</desc></maintenance><maintenance><date>11-03-2017</date><desc>oil change</desc></maintenance></vehicles><vehicles><type>car</type><model>Honda Accord</model><insurance><company>Car Insurance</company><policy_num>98765</policy_num></insurance><features>custom paint</features><features>custom wheels</features><maintenance><date>10-07-2017</date><desc>new air filter</desc></maintenance><maintenance><date>01-13-2018</date><desc>new brakes</desc></maintenance></vehicles>

関連項目

  • 自動スキーマ検出:水平フラット化を使用してカラム検出を設定します。
  • フリーフォームクエリ:ドット表記を使用して、ネストされたデータを選択します。
  • 垂直フラット化:ネストされたデータを別々のテーブルとしてクエリします。
  • XML 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

XML Connector for CData Sync

リレーショナルモデル

The CData Sync App can be configured to create a relational model of the data in the XML file or source, treating each XPath as an individual table containing a primary key and a foreign key that links to the parent document.This is particularly useful if you need to work with your XML data in existing BI, reporting, and ETL tools that expect a relational data model.

Joining Nested Arrays as Tables

With DataModel set to "Relational", any JOINs are controlled by the query.Any time you perform a JOIN query, the XML file or source will be queried once for each table included in the query.

例

Below is a sample query against the sample document in Raw データ, using a relational model based on the XML paths "/root/people", "/root/people/vehicles", and "/root/people/vehicles/maintenance".

接続文字列

DataModel 接続プロパティを"Relational" に設定しXPath 接続プロパティを"/root/people;/root/people/vehicles;/root/people/vehicles/maintenance;" に設定して、次のクエリを実行してサンプル結果セットを表示します。

URI=C:\people.txt;DataModel=Relational;XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance;'

クエリ

The following query explicitly JOINs the people, vehicles, and maintenance tables.

SELECT 
  [people].[personal.age] AS age, 
  [people].[personal.gender] AS gender, 
  [people].[personal.name.first] AS first_name, 
  [people].[personal.name.last] AS last_name, 
  [people].[source], 
  [vehicles].[type], 
  [vehicles].[model], 
  [vehicles].[insurance.company] AS ins_company, 
  [vehicles].[insurance.policy_num] AS ins_policy_num, 
  [maintenance].[date] AS maint_date, 
  [maintenance].[desc] AS maint_desc
FROM 
  [people]
JOIN 
  [vehicles] 
ON 
  [people].[_id] = [vehicles].[people_id]
JOIN 
  [maintenance] 
ON 
  [vehicles].[_id] = [maintenance].[vehicles_id]

結果

In the example query, each maintenance element is JOINed to its parent vehicle element, which is JOINed to its parent people element to produce a table with 8 rows (2 maintenance entries for each of 2 vehicles each for 2 people).

agegenderfirst_namelast_namesourcetypemodelins_companyins_policy_nummaint_datemaint_desc
20MJohnDoeinternetcarHonda CivicABC Insurance123452017-07-17oil change
20MJohnDoeinternetcarHonda CivicABC Insurance123452018-01-03new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452017-08-27new tires
20MJohnDoeinternettruckDodge RamABC Insurance123452018-01-08oil change
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-05-11tires rotated
24FJaneRobertsphonecarToyota CamryCar Insurance987652017-11-03oil change
24FJaneRobertsphonecarHonda AccordCar Insurance987652017-10-07new air filter
24FJaneRobertsphonecarHonda AccordCar Insurance987652018-01-13new brakes

関連項目

  • 自動スキーマ検出:テーブルスキーマに報告されたカラムを設定します。
  • フリーフォームクエリ:ドット表記を使用して、ネストされたデータを選択します。
  • 垂直フラット化:ネストされたデータを別々のテーブルとしてクエリします。
  • XML 関数:クライアント側の集計と変換を実行するために返されたデータを操作します。

XML Connector for CData Sync

自動スキーマ検出

デフォルトでは、Sync App は配列内の一連のXML オブジェクトを調べ、自動的にリレーショナルスキーマを提案します。このセクションでは、これらの動的スキーマを設定するために使用できる接続プロパティについて説明します。

テーブルの検出

このセクションでは、行スキャンを微調整することによって検出されたスキーマを微調整する方法を示します。 検出される行は、RowScanDepth、DataModel、およびXPath プロパティに依存します。

  • RowScanDepth:この設定は、列を検索してカラムを検出するためにスキャンするオブジェクト配列の数を指定します。このプロセスは、ネストされたオブジェクトに従って1つのオブジェクト配列を1行として数えます。
  • DataModel:オブジェクト配列をテーブルとしてどのように表示するかを選択します。 この設定はまた、スキャンされるオブジェクトにも影響します。Relational およびFlattenedDocuments 設定では、RowScanDepth アイテム内のすべてのオブジェクト配列(ネストされたものを含む)が検索されます。Document 設定では、最初のオブジェクト配列のみが検索されます。

  • XPath:公開するオブジェクト配列を明示的に指定します。DataModel がDocument に設定されている場合は、最上位のXPath を1つしか設定できないことに注意してください。さまざまなXPath 値を持つサンプルドキュメントにアクセスする例については、階層データの解析 を参照してください。

カラムの検出

検出プロセスで特定されるカラムはFlattenArrays およびFlattenObjects プロパティに依存します。FlattenObjects が設定されている場合(これがデフォルトです)、ネストされたオブジェクトは連続したカラムにフラット化されます。 例えば、次のドキュメントを考えましょう。

<company>
  <id>12</id>
  <name>Lohia Manufacturers Inc.</name>
  <address>
    <street>Main Street</street>
    <city>Chapel Hill</city>
    <state>NC</state>
  </address>
  <office>Chapel Hill</office>
  <office>London</office>
  <office>New York</office>
  <annual_revenue>35,600,000</annual_revenue>
</company> 
デフォルトのオブジェクトフラット化では、このドキュメントは次のカラムで表されます:

カラム名データ型サンプル値
idInteger12
nameStringLohia Manufacturers Inc.
address.streetStringMain Street
address.cityStringChapel Hill
address.stateStringNC
officeString<office>Chapel Hill</office><office>London</office><office>New York</office>
annual_revenueDouble35,600,000

FlattenObjects が設定されていない場合、address.street、address.city、およびaddress.state カラムは別々にはなりません。文字列型の住所カラムは一つのオブジェクトとして表されます。値は次のようになります:

<address><street>Main Street</street><city>Chapel Hill</city><state>NC</state></address>

FlattenArrays プロパティは配列の値をフラット化してそれぞれのカラムとするために使われます。これは、以下のoffice 配列の例のように、短い配列の場合にのみ推奨されます。

<office>London</office>
<office>Los Angeles</office>
FlattenArrays プロパティは2に設定して上の配列を次のように表すことができます:

カラム名データ型サンプル値
office.0StringLondon
office.1StringLos Angeles

アンバウンドの配列をそのままにしておき、必要な際にXML 関数 を使ってデータを取り出すことをお勧めします。

XML Connector for CData Sync

フリーフォームクエリ

自動スキーマ検出 の説明にあるとおり、直感的なテーブルスキーマは非構造化XML データへのSQL アクセスを可能にします。スキーマのカスタマイズ では静的なテーブルを定義でき、データのリレーショナルビューでの緻密な制御を可能にします。例えば、報告されたデータ型を変更することができます。ただし、データのスキーマのビューに限定されるわけではありません。

どんなネストされた構造でもデータをフラット化せずにクエリできます。自動スキーマ検出 を介してアクセスできるあらゆるリレーションへは、アドホックなSQL クエリを使ってもアクセスが可能です。

拡張された射影構文

次のクエリのように、SELECT 句で、ドット表記を使用してデータへのXPath を指定します。

SELECT [personal.name.last], [personal.name.first], [vehicles.1.type], [vehicles.1.model] FROM people WHERE [personal.name.last] = 'Roberts' AND [personal.name.first] = 'Jane'

特定の配列要素へのパスを指定するには、要素の順序位置を指定します。配列のインデックスはゼロオリジンなので、上記のクエリは2番目の車両を取得します。

例

上記のクエリは、サンプルのRaw データ のpeople ドキュメントからカラム名を引きます。以下はpeople 配列からのperson オブジェクトです。

<?xml version="1.0" encoding="utf-8"?>
<root>
  <rootAttr1>rootValue1</rootAttr1>
  <people>
    <personal>
      <age>20</age>
      <gender>M</gender>
      <name>
        <first>John</first>
        <last>Doe</last>
      </name>
    </personal>
    <jobs>support</jobs>
    <jobs>coding</jobs>
    <vehicles>
      <type>car</type>
      <model>Honda Civic</model>
      <insurance>
        <company>ABC Insurance</company>
        <policy_num>12345</policy_num>
      </insurance>
      <features>sunroof</features>
      <features>rims</features>
      <maintenance>
        <date>07-17-2017</date>
        <desc>oil change</desc>
      </maintenance>
      <maintenance>
        <date>01-03-2018</date>
        <desc>new tires</desc>
      </maintenance>
    </vehicles>
    <vehicles>
      <type>truck</type>
      <model>Dodge Ram</model>
      <insurance>
        <company>ABC Insurance</company>
        <policy_num>12345</policy_num>
      </insurance>
      <features>lift kit</features>
      <features>tow package</features>
      <maintenance>
        <date>08-27-2017</date>
        <desc>new tires</desc>
      </maintenance>
      <maintenance>
        <date>01-08-2018</date>
        <desc>oil change</desc>
      </maintenance>
    </vehicles>
    <addresses>
      <type>work</type>
      <zip>12345</zip>
    </addresses>
    <addresses>
      <type>home</type>
      <zip>12357</zip>
    </addresses>
    <source>internet</source>
  </people>
</root> 

接続文字列

次の接続文字列を使用すると、Sync App はネストされたデータをパースしません。データはクエリを実行すると処理されます。トップレベルオブジェクトのプロパティは、デフォルトのFlattenObjects 機能によって変わらずフラット化されます。 ネストされたデータはXML の集計として返されます。

URI=C:\people.txt;DataModel=Document;XPath='/root/people;'

クエリ

Raw データ ドキュメントのあらゆるネスト構造にカラムとしてアクセスできます。

SELECT [personal.name.last], [personal.name.first], [vehicles.1.type], [vehicles.1.model] FROM people WHERE [personal.name.last] = 'Roberts' AND [personal.name.first] = 'Jane'

配列のインデックスはゼロオリジンです。上記のクエリでは、サンプルperson のsecond vehicle を取得します。

結果

先のクエリは、次の結果を返します。

カラム名データ型サンプル値
personal.name.firstStringJane
personal.name.lastStringRoberts
vehicles.1.typeStringcar
vehicles.1.modelStringHonda Accord

XML Connector for CData Sync

垂直フラット化

垂直フラット化クエリを使用すると、ネストされた要素を個別のテーブルのように取得することが可能です。

垂直フラット化クエリ構文

FROM 句では、ドット表記を使用してネストされた要素にドリルダウンできます。

SELECT * FROM [people.vehicles] 

例

Consider a single array element from the Raw データ document -- a person object from an array of people:

<?xml version="1.0" encoding="UTF-8" ?>
<root>
<people>
  <personal>
    <age>20</age>
    <gender>M</gender>
    <name>
      <first>John</first>
      <last>Doe</last>
    </name>
  </personal>
  <vehicles>
    <type>car</type>
    <model>Honda Civic</model>
    <insurance>
      <company>ABC Insurance</company>
      <policy_num>12345</policy_num>
    </insurance>
    <maintenance>
      <date>07-17-2017</date>
      <desc>oil change</desc>
    </maintenance>
    <maintenance>
      <date>01-03-2018</date>
      <desc>new tires</desc>
    </maintenance>
  </vehicles>
  <vehicles>
    <type>truck</type>
    <model>Dodge Ram</model>
    <insurance>
      <company>ABC Insurance</company>
      <policy_num>12345</policy_num>
    </insurance>
    <maintenance>
      <date>08-27-2017</date>
      <desc>new tires</desc>
    </maintenance>
    <maintenance>
      <date>01-08-2018</date>
      <desc>oil change</desc>
    </maintenance>
  </vehicles>
  <source>internet</source>
</people>
</root> 
  

接続文字列

次の接続文字列を使用すると、Sync App はネストされたデータをパースしません。データはクエリを実行すると処理されます。デフォルトのFlattenObjects 機能により、トップレベル要素のプロパティはフラット化されます。ネストされたデータはXML の集計として返されます。

URI=C:\people.txt;DataModel=Document;XPath='/root/people;'

クエリ

垂直フラット化ではvehicles 要素を別々のテーブルとして取得することを許可します。

SELECT * FROM [people.vehicles]
このクエリは、次のデータセットを返します。

featuresinsurance.companyinsurance.policy_nummaintenancemodeltype

<features>sunroof</features><features>rims</features>
ABC Insurance12345
<maintenance><date>07-17-2017</date><desc>oil change</desc></maintenance><maintenance><date>01-03-2018</date><desc>new tires</desc></maintenance>
Honda Civiccar

<features>lift kit</features><features>tow package</features>
ABC Insurance12345
<maintenance><date>08-27-2017</date><desc>new tires</desc></maintenance><maintenance><date>01-08-2018</date><desc>oil change</desc></maintenance>
Dodge Ramtruck

<features>upgraded stereo</features>
Car Insurance98765
<maintenance><date>05-11-2017</date><desc>tires rotated</desc></maintenance><maintenance><date>11-03-2017</date><desc>oil change</desc></maintenance>
Toyota Camrycar

<features>custom paint</features><features>custom wheels</features>
Car Insurance98765
<maintenance><date>10-07-2017</date><desc>new air filter</desc></maintenance><maintenance><date>01-13-2018</date><desc>new brakes</desc></maintenance>
Honda Accordcar

XML Connector for CData Sync

XML 関数

Sync App では、XML をカラム値として返すことができます。Sync App を使って、これらのカラム値においてSQL 関数を使用できます。The following sections provide examples; for a reference, see 文字列関数. The examples in this section use the following array (see 階層データの解析 for more information on parsing XML objects and arrays):

 
<grades>
  <student>
    <grade>A</grade>
    <score>2</score>
  </student>
  <student>
    <grade>A</grade>
    <score>6</score>
  </student>
  <student>
    <grade>A</grade>
    <score>10</score>
  </student>
  <student>
    <grade>A</grade>
    <score>9</score>
  </student>
  <student>
    <grade>B</grade>
    <score>14</score>
  </student>
</grades>

XML_EXTRACT

XML_EXTRACT でXML オブジェクトから個別の値を抜き出すことができます。次のクエリは、関数に第二引数として渡されたXML パスに基づいて、以下に示す値を返します。
SELECT Name, XML_EXTRACT(grades,'[0].grade') AS Grade, XML_EXTRACT(grades,'[0].score') AS Score FROM Students;

カラム名サンプル値
GradeA
Score2

XML_COUNT

XML_COUNT 関数はXML オブジェクト内のXML 配列の要素数を返します。次のクエリは、関数に第二引数として渡されたXML パスにより指定された要素数を返します。
SELECT Name, XML_COUNT(grades,'[x]') AS NumberOfGrades FROM Students;

カラム名サンプル値
NumberOfGrades5

XML_SUM

XML_SUM 関数は、XML オブジェクト内のXML 配列の数値の合計を返します。次のクエリは、関数に第二引数として渡されたXML パスにより指定された合計値を返します。
SELECT Name, XML_SUM(score,'[x].score') AS TotalScore FROM Students;

カラム名サンプル値
TotalScore 41

XML_MIN

XML_MIN 関数は、XML オブジェクト内のXML 配列の最小値を返します。次のクエリは、関数に第二引数として渡されたXML パスにより指定された最小値を返します。
SELECT Name, XML_MIN(score,'[x].score') AS LowestScore FROM Students;

カラム名サンプル値
LowestScore2

XML_MAX

XML_MAX 関数は、XML オブジェクト内のXML 配列の最大値を返します。次のクエリは、関数に第二引数として渡されたXML パスにより指定された最大値を返します。
SELECT Name, XML_MAX(score,'[x].score') AS HighestScore FROM Students;

カラム名サンプル値
HighestScore14

XML Connector for CData Sync

スキーマのカスタマイズ

自動スキーマ検出 で検出されたテーブルスキーマをカスタマイズして、カラム名やデータ型を変更したり、更新機能を有効にしたりできます。CData Sync App の処理操作は、データの処理およびリモートデータソースとの通信の複雑さを解決しながら、カスタムスキーマを介してこれらのレイヤーを制御することも可能です。

カスタムスキーマは、コンフィギュレーションファイルで定義されます。この章では、これらのファイルの構造を概説します。

スキーマファイルの生成

スキーマファイルの生成 を使用すると、自動スキーマ検出 で検出された動的スキーマを永続化およびカスタマイズできます。

スキーマファイルの編集

テーブルとビューは、APIScript でスキーマファイルを作成することによって定義されます。APIScript は、テーブルのカラムとその動作を定義するシンプルなAPIScript コンフィギュレーション言語にて書かれています。また、XML を処理可能にするビルトインオペレーションがあります。これらのデータ処理構造に加えて、APIScript は、条件分岐やループなどに対応して構成されているフル機能の言語です。ただし、サンプルスキーマに示すように、ほとんどのテーブル定義ではこれらの機能を使用する必要はありません。

スキーマ例

以下は、Raw データ 例のpeople ドキュメントをモデル化し、SQL をローカルまたはリモートのXML に実行するために必要なすべてのコンポーネントを含む、完全に機能的なテーブルスキーマです。

スキーマは次の接続文字列を反映します。これにより、指定されたXPaths によって記述されたデータを含む単一のテーブルが返されます。異なるDataModel 設定についてのガイドは、階層データの解析 を参照してください。

DataModel=FLATTENEDDOCUMENTS;URI=C:\people.xml;XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance';Location=C:\myschemas;GenerateSchemaFiles=OnStart;

スキーマの各コンポーネントの詳細は、カラム定義、SELECT 実行、INSERT 実行、UPDATE 実行、およびDELETE 実行 で確認できます。ストアドプロシージャを作成して、SELECT、INSERT、UPDATE、またはDELETE ステートメントとしてモデル化できないAPI の機能を実装することもできます。詳しくは、ストアドプロシージャの定義 を参照してください。

  <api:script>
     <api:info title="Persons" desc="Parse the OData Persons feed.">
    <!-- You can modify the name, type, and column size here. -->
    <!-- See Column Definitions to specify column behavior and use XPaths to extract column values from XML. -->
      <attr name="ID"           xs:type="int" key="true" readonly="false"   other:xPath="/feed/entry/content/properties/ID" />
      <attr name="EmployeeID"   xs:type="int"            readonly="true"    other:xPath="/feed/entry/content/properties/EmployeeID" />
      <attr name="Name"         xs:type="string"         readonly="false"   other:xPath="/feed/entry/content/properties/Name" />
      <attr name="TotalExpense" xs:type="double"         readonly="true"    other:xPath="/feed/entry/content/properties/TotalExpense" />
      <attr name="HireDate"     xs:type="datetime"       readonly="true"    other:xPath="/feed/entry/content/properties/HireDate" />
      <attr name="Salary"       xs:type="int"            readonly="true"    other:xPath="/feed/entry/content/properties/Salary" />
    </api:info>
    
    <api:set attr="uri" value="http://services.odata.org/V4/OData/(S(5cunewekdibfhpvoh21u2all))/OData.svc/Persons" /> 
  
    <!-- The XPath attribute of a schema is the path to a repeating element that defines the separation of rows -->
    <api:set attr="XPath" value="/feed/entry/" />
  
    <!-- See the xmlproviderGet page in the Operations subchapter to set any needed HTTP parameters. -->
    <api:set attr="ContentType"   value="application/atom+xml" />
  
  <!-- The GET method corresponds to SELECT. Here you can change the parameters of the request for data. The results of processing are pushed to the schema's output. See SELECT Execution for more information. -->
  <api:script method="GET">
    <api:call op="xmlproviderGet">
      <api:push/>
    </api:call>
  </api:script> 
  
  <!-- To add support for INSERTS please see the INSERT Execution page within the help for further information and examples. -->
  <api:script method="POST">
    <api:set attr="method" value="POST"/>
    <api:call op="xmlproviderGet">
      <api:throw code="500" desc="Inserts are not currently supported."/>
      <api:push/>
    </api:call>
  </api:script>

  <!-- To add support for UPDATES please see the UPDATE Execution page within the help for further information and examples. -->
  <api:script method="MERGE">
    <api:set attr="method" value="PUT"/>
    <api:call op="xmlproviderGet">
      <api:throw code="500" desc="Updates are not currently supported."/>
      <api:push/>
    </api:call>
  </api:script>

  <!-- To add support for DELETES please see the DELETE Execution page within the help for further information and examples. -->
  <api:script method="DELETE">
    <api:set attr="method" value="DELETE"/>
    <api:call op="xmlproviderGet">
      <api:throw code="500" desc="Deletes are not currently supported."/>
      <api:push/>
    </api:call>
  </api:script>

  </api:script> 

XML Connector for CData Sync

スキーマファイルの生成

自動スキーマ検出 を使用して動的に検出されたスキーマをより細かく制御するには、スキーマをコンフィギュレーションファイルに保存することができます。GenerateSchemaFiles プロパティを使用すると、接続文字列で設定されたデータモデリング設定に基づいてスキーマを自動的に生成できます。CreateSchema ストアドプロシージャを使用すると、接続後に他のXPath のスキーマを作成できます。

スキーマファイルの自動生成

接続時、もしくはクエリ実行時にスキーマを生成することができます。Sync App は、Location で指定したフォルダにスキーマを保存します。

  • 接続時に検出されたすべてのテーブルのスキーマを生成するには、GenerateSchemaFiles をOnStart に設定します。
  • テーブルをクエリするときに参照されるテーブルのスキーマを生成するには、GenerateSchemaFiles をOnUse に設定します。

CreateSchema ストアドプロシージャの使用

CreateSchema ストアドプロシージャを呼び出して、指定したXPaths のスキーマファイルを生成できます。以下は、ストアドプロシージャの入力と出力です。

Input

Name Type Description
TableName String テーブル名およびスキーマ(RSD)ファイル名。
URI String XML リソースのUniform Resource Identifier (URI)。
XPath String XML ドキュメント内で同じ階層で繰り返す要素のXPath。(これは、ドキュメントを複数の行に分割するために使われます)。複数のパスをセミコロン区切りリストで指定します。
FileLocation String 生成されたスキーマ(RSD)ファイルが保存されるフォルダパス。指定された場合には、TableName はスキーマファイル名として使われます。
FileName String 生成されたスキーマの完全なスキーマ(RSD)ファイル名。このインプットはFileLocation よりも優先されます。

Output

Name Type Description
Result String Success またはFailure を返します。

ストアドプロシージャ呼び出しの例

接続文字列のDataModel をFLATTENDOCUMENTS に設定すると、下のサンプルストアドプロシージャコールでは、すべてのXPath 配列を単一テーブルにフラット化するスキーマが生成されます。

このデータモデルについて詳しくは、フラット化されたドキュメントモデル を参照してください。

EXECUTE CreateSchema TableName='GenPeople', 
FileLocation='C:\\tests\\scripts', 
URI='C:\\tests\\people.xml', 
XPath='/root/people;/root/people/vehicles;/root/people/vehicles/maintenance'

次のステップ

  • カラム定義:カラム名とデータ型またはXPath を、カラムの値に変更します。
  • SELECT 実行:HTTP リクエストにアクセスします。例えば、サーバサイドの検索を実装します。
  • INSERT 実行:INSERT ステートメントからの入力をHTTP リクエストにマッピングすることで挿入を有効にします。
  • UPDATE 実行:更新されたカラムの値をHTTP リクエストにマッピングすることで更新を有効にします。
  • DELETE 実行:主キーをHTTP リクエストにマッピングすることで削除を有効にします。

XML Connector for CData Sync

カラム定義

カラムの基本属性は、カラム名、データ型、カラムが主キーかどうか、およびXPath です。Sync App は、XPath を使って階層構造データのノードを取得します。

スキーマファイルのapi:info ブロックにカラム属性をマークアップします。以下の例で示すように、other:xPath プロパティにXPath を設定します。

<api:info title="Persons" desc="Parse the OData Persons feed.">
    <attr name="ID"           xs:type="int" key="true" readonly="false"   other:xPath="content/properties/ID" />
    <attr name="EmployeeID"   xs:type="int"            readonly="true"    other:xPath="content/properties/EmployeeID" />
    <attr name="Name"         xs:type="string"         readonly="false"   other:xPath="content/properties/Name" />
    <attr name="TotalExpense" xs:type="double"         readonly="true"    other:xPath="content/properties/TotalExpense" />
    <attr name="HireDate"     xs:type="datetime"       readonly="true"    other:xPath="content/properties/HireDate" />
    <attr name="Salary"       xs:type="int"            readonly="true"    other:xPath="content/properties/Salary" />
  </api:info>
次のセクションでは、XPath を使用してカラムと行を抽出する方法について詳しく説明します。完全なスキーマでカラム定義を見るには、スキーマのカスタマイズ を参照してください。

カラムXPath の定義

other:xPath プロパティは、カラム値を取得するXPath を指定するために使われます。

絶対パスは'/' で始まり、ネストされたデータへのフルXPath を含みます。

<attr name="ID"           xs:type="int" key="true" other:xPath="/feed/entry/content/properties/ID" /> 

インデックスされたXPath 値は、同じ名前の複数の要素が同じレベルにネストされている場合、XML ドキュメント内の要素を指定するために使われます。インデックスはゼロベースです。

<api:info>
  <attr name=PhoneNumber1 xs:type="string" other:xPath="Person/PhoneNumber[0]"/>
  <attr name=PhoneNumber2 xs:type="string" other:xPath="Person/PhoneNumber[1]"/>
</api:info>

Notes:

  • XPath およびカラム名(XPath の生成に使われた場合)は、大文字・小文字の区別があります。
  • XPath の外に指定されたパスは、最後にプッシュされた行を除いて(その場合は見つかったすべてのパスがプッシュされます)、行(XPath )が見つかる前に見つかった場合にのみ取得されます。これは、各行がストリーミング方式でプッシュされているためです。

行XPath の定義

行XPath は、同じ階層で繰り返す要素へのパスを指定します。これはSync App が行に分割するオブジェクト配列です。DataModel をFlattenedDocuments またはRelational に設定すると、複数のXPath をセミコロン区切りのリストで指定できます。これらのデータモデリングストラテジーのガイドについては、階層データの解析 を参照してください。

接続文字列でXPath プロパティを定義するか、行XPath を個々のスキーマの属性として定義できます。api:set キーワードを使用して、スキーマの行のXPath を定義します。DataModel をFlattenedDocuments またはRelational に設定すると、複数のXPath をセミコロン区切りのリストで指定できます。

<api:set attr="XPath" value="/root/people;/root/people/vehicles;/root/people/vehicles/maintenance" /> 

ワイルドカードのXPath はすべてのXPath が同じ階層にあるが異なる名前を含む場合には有効です。

<api:set  attr="XPath" value="/feed/*" />

カラム値形式を定義

other:valueFormat プロパティを"aggregate" に設定して、カラムを集計として識別することができます。

  • aggregate オプションは、指定されたXPath において見出されるXML 集計を返します。例えば、次を考えてみましょう:
        <repeat>
        <name>TestAggregate</name>
        <myobjcol1>
          <object1>myData</object1>
          <object1>myData1</object1>
          <object2>myData2</object2>
        </myobjcol1>
        </repeat>
        
    次の例では、myobjcol1 要素をMyObjCol1 という名前のカラムに抽出します。
        <api:info>
          <attr name="MyObjCol1" xs:type="string" other:xPath="myobjcol1" other:valueFormat="aggregate"/>
        </api:info>
        <api:set attr="XPath" value="/repeat"/>
        
    カラム値は次のようになります。
        <myobjcol1>
          <object1>myData</object1>
          <object1>myData1</object1>
          <object2>myData2</object2>
        </myobjcol1>
        

SELECT 抽出条件のクエリパラメータへのマッピング

一部のAPI では、クエリパラメータを指定することでリクエスト結果をフィルタリングできます。このパラメータがWHERE 句にマップされている場合は、other:filter プロパティを使用してこのマッピングをプログラムできます。

  • other:filter は、<parameter name>:<operator list> のセミコロン区切りリストです。<parameter name> はクエリパラメータの名前、<operator list> はマッピングに使用される演算子のカンマ区切りのリストです。有効な演算子は<、<=、=、>、>=、およびLIKE です。

以下は、2つのクエリパラメータ'modifiedSince' および'modifiedBefore' の例です。'modifiedAt' カラムに基づいて結果をフィルタ処理します。

    <attr name="ModifiedAt"           xs:type="datetime" readonly="false"   other:xPath="content/properties/modifiedAt" other:filter="modifiedBefore:<;modifiedSince:>,>=,=" />
    

この例では、次のクエリステートメントを使用します。

SELECT * 
FROM <table> 
WHERE modifedAt < '<datetime>'
そして、クエリパラメータ'&modifiedBefore=<url encoded datetime>' をURL に追加するリクエストを生成します。

XML Connector for CData Sync

SELECT 実行

SELECT クエリが発行されると、Sync App はスキーマのGET メソッドを実行します。これは、XML を処理するためのSync App のビルトインオペレーションを呼び出します。GET メソッドでは、データの要求を制御できます。次のプロシージャは、これを使用するいくつかの方法を示します。SELECT WHERE を使ったサーバー側でのリモートデータの検索、サーバーから返される結果のLIMIT、またはページングを実装します。

クエリ処理

デフォルトでは、Sync App がクライアント側のインメモリでクエリを処理するため、SELECT ステートメントを実行するために必要なのはXPath とURI 接続プロパティだけです。

Sync App は、その他のクエリをクライアント側で処理する間に、サポートされているクエリをサーバーにオフロードすることもできます。例えば、サーバー側の検索でデータがフィルタリングされ、より小さなデータセットをクライアント側で処理できるようになります。クエリ処理の機能について詳しくは、SupportEnhancedSQL プロパティのドキュメントを参照してください。

XML へのSelect の実行

次の手順を実行すると、SQL-92クエリを実行できるスクリプトが作成されます。クエリはクライアント側で処理されます。 データ処理操作を呼び出す前に、URI とXPath(オプション)を指定する必要があります。api:set キーワードを使って、これらの属性を宣言します。

  1. URI 属性を、ローカルファイルまたはHTTP アクセス可能なアドレスに設定します。

    <api:set  attr="uri"                      value="NorthwindOData.xml" /> 

  2. 必要であれば、XPath 属性を、個々の行を構成するデータのXPath に設定します。デフォルトでは、Sync App はドキュメントをスキャンして行を検出します(階層データの解析 を参照)。

    <api:set  attr="XPath" value="/feed/entry/" /> 

  3. GET メソッドで処理を呼び出します。スクリプトブロック内でapi:push キーワードを使用して処理を呼び出します。op パラメータを使って処理を指定します。このキーワードは、処理の結果をスキーマの出力にプッシュします。

    <api:script method="GET">
      <api:set attr="method" value="GET"/>
      <api:set attr="uri" value="[uri]?$format=atom"/>
      <api:call op="xmlproviderGet">
        <api:push />
      </api:call>
    </api:script>

結果のスクリプトを拡張して、サーバー側の要求を処理するためのサポートを追加できます。

サーバー上でSELECT WHERE を処理

次のセクションでは、SELECT WHERE ステートメントをXML API に対する検索リクエストに変換する方法を示します。プロシージャは次のステートメントを使用します。

SELECT * 
FROM <table> 
WHERE modifedAt < '2017-10-10' AND modifedAt > '2017-09-01'

このフィルタがクエリパラメータを介してサーバーでサポートされている場合は、api:info カラム定義のother:filter プロパティを使用して、希望するマッピングを指定できます。上記のクエリでは、このプロパティを使用して、modifiedAt < '<date>' フィルタを特定の日付より前に修正された結果を返すクエリパラメータにマッピングします。そして、modifedAt > '<date>' フィルタを後で修正された結果をフィルタリングするクエリパラメータにマッピングします。other:filter は次のように指定します。

  • other:filter は、<parameter name>:<operator list> のセミコロン区切りリストです。<parameter name> はクエリパラメータの名前、<operator list> はマッピングに使用される演算子のカンマ区切りのリストです。有効な演算子は<、<=、=、>、>=、およびLIKE です。

このマッピングを実行するには、modifedAt カラム定義に次のマークアップを使用します

    <attr name="modifiedAt"           xs:type="datetime" readonly="false"   other:xPath="content/properties/modifiedAt" other:filter="modifiedBefore:<;modifiedSince:>" />
    

このクエリは次のリクエストになります:

[url]?modifedBefore=2017-10-10&modifedSince=2017-09-01

API フィルタがクエリパラメータで渡されない場合は、スクリプトで渡す必要があります。例えば、/persons/{name}/data endpoint をクエリして名前でフィルタするAPI を考えてみましょう。

SELECT *
FROM Persons 
WHERE (Name = 'Fran Wilson') 

スキーマのGET メソッドでは、Items in API Script のいずれかの_input アイテムの属性を使用して検索条件にアクセスし、HTTP データ取得要求を作成します。 対応する以下のスクリプトはリクエストを作成します。api:check 要素は、その値にアクセスを試みる前に、属性の有無をチェックするのに便利です。さまざまなValue Formatters を使用して、URL エンコードのような変換を行うことができます。

<api:script method="GET">
  <api:check attr="_input.Name">
    <api:set attr="uri" value="[uri]/[_input.name|urlencode]/data"/>
  </api:check>
</api:script>

疑似カラムによる検索

WHERE 句に疑似カラムを指定して、結果に戻されたカラム以外の入力を使用して検索条件を作成できます。

例えば、Weather Underground API では、指定された場所の予測を返すことができます。Location 自体は予測データの一部ではなく、以下のリクエストのようにリクエストURL に指定されます。

http://api.wunderground.com/api/{MyAPIKey}/hourly/q/{MyLocation}.xml 

次にSQL で表された予測クエリの例を示します。

SELECT * FROM Hourly WHERE Location="27516"

下記の手順に従って、Location 疑似カラムを追加し、先のクエリを実装します。

  1. ロケーション入力パラメータをapi:info ブロックのカラム定義に追加します。(Location は必須です。Location が指定されていない場合、Sync App はエラーを返します。)
    <api:info>
      ...
      <input  name="Location"                 required="true"/>
    </api:info>
  2. _input アイテムのLocation 属性を参照して、URI を構築します。
    <api:set attr='uri' value="http://api.wunderground.com/api/[_connection.APIKey]/hourly/q/[_input.Location].xml"/>
  3. 処理を呼び出してリクエストを行い、レスポンスを処理します。
    <api:script method="GET" >
      <api:push op="xmlproviderGet"/>
    </api:script> 

ページングの実装

自動ページングをサポートするには、Rows@Next 入力をapi:info ブロックのカラムリストに追加します。

<input name="rows@next" desc="Identifier for the next page of results. Do not set this value manually." />
これをattr パラメータではなくinput パラメータにすると、カラムリストに情報が表示されなくなります。 また、ドライバーの内部ページングメカニズムを無効にするには、 'EnablePaging' 属性をTRUE に設定する必要があります。
<api:set attr="EnablePaging" value="TRUE" />

ドライバーは4種類のページング実装を自動的にサポートします。1つ目は、次のページのURL がレスポンスに返されたときです。2つ目は、クエリパラメータに現在のページオフセットを指定するタイプです。3つ目は、クエリパラメータで現在のページ番号を送信するものです。4つ目は、次のリクエストのクエリパラメータにページトークンを送信する必要があります。API がこれらのページングパターンのいずれかを利用している場合は、以下の例に従ってページングを実装してください。

次ページのURL

サービスが次のページのURL をレスポンスボディやヘッダに返すときは、'pageurlpath' 属性をこのデータの場所に設定します。この場所に値が存在する場合は、次のリクエストのURL を設定するために使用されます。

  • 次ページのURL がレスポンスボディに渡される場合は、'pageurlpath' を要素のXPath に設定します。
    <api:set  attr="pageurlpath"                             value="/data/nextPage" /> 
  • 次ページのURL が'Link' ヘッダとともにレスポンスヘッダに渡される場合は、'pageurlpath' の前にheader: を付けてその場所を示すことができます。 返された'Link' ヘッダ値に部分的なURL パスが含まれている場合は、'BaseURI' 属性を、'Link' ヘッダで返されたURL パスの先頭に追加するベースURL に設定できます。
    <api:set  attr="pageurlpath"                             value="header:Link" /> 

ページングトークン

後続リクエストでページングパラメータに渡す必要があるトークンがレスポンスボディに返されることがあります。この場合は、'pagetokenparam' と'pagetokenpath' 属性を設定できます。'pagetokenpath' は要素のXPath に設定する必要があります。他のページがあるかどうかを示す変数を送信するサービスもあります。その場合は、'hasmorepath' 属性をXPath に設定することもできます。

  • ページトークンがクエリパラメータで渡される場合は、'pagetokenparam' をパラメータの名前に設定します。
    <api:set  attr="pagetokenpath"                        value="/data/token" /> 
    <api:set  attr="hasmorepath"                          value="/data/has_more" /> 
    <api:set  attr="pagetokenparam"                       value="nextpagetoken" /> 
    has_more がtrue の場合、これは/data/token にあるトークンを次のクエリに渡します:?nextpagetoken=<token>
  • トークンをリクエストボディに渡す必要がある場合もあります。そのためには、'pagetokenparam' をXPath に設定します。
    <api:set  attr="pagetokenpath"                        value="/request/nextpagetoken" /> 

レコードオフセット

サービスがページングを制御するレコードオフセットクエリパラメータを提供する場合は、オフセットクエリパラメータの名前、ページサイズクエリパラメータの名前、および渡されるページサイズを設定することによってこれを実装できます。これを制御するパラメータがない場合は、ページサイズパラメータを設定する必要はありません。この場合、pagesize をデフォルトのページサイズに設定する必要があります。


<api:set  attr="pageoffsetparam"                      value="offset" /> 
<api:set  attr="pagesizeparam"                        value="limit" /> 
<api:set  attr="pagesize"                             value="100" /> 

ページ番号

レコードオフセットと同様に、サービスがページ番号を設定するクエリパラメータを提供する場合は、ページ番号クエリパラメータの名前、ページサイズクエリパラメータの名前、および渡されるページサイズを設定することによってこれを実装できます。これを制御するパラメータがない場合は、ページサイズパラメータを設定する必要はありません。この場合、pagesize をデフォルトのページサイズに設定する必要があります。


<api:set  attr="pagenumberparam"                      value="page" /> 
<api:set  attr="pagesizeparam"                        value="pagesize" /> 
<api:set  attr="pagesize"                             value="100" /> 

他のページングの種類

API がこれらのページングパターンのどれにも従わない場合は、カスタムページング実装が必要になります。これは、最初のページから必要な情報を'Rows@Next' 属性に設定することによって行われます。 出力に'Rows@Next' 値が設定されている場合、Sync App はこのページの結果を返した後、入力に'Rows@Next' 値を使用してこのメソッドを自動的に再度呼び出します。この入力の値を使用して、次のパスのリクエストを変更して、次ページのデータを取得することができます。 次ページのデータをリクエストするために必要なあらゆる情報にRows@Next 入力を設定します。

例えば、API が次ページのURL を応答で返す場合があります。URL にXPath を指定することでこの値を取得できます。

<api:set  attr="elementmappath#"  value="/next_page" />
<api:set  attr="elementmapname#"  value="rows@next" /> 
値が設定されている場合は、リクエストが行われたURL を変更できます。api:check 要素を使用して、Rows@Next 入力が値を持つかどうかを最初にチェックします。Rows@Next 入力は、_input アイテムの属性としてアクセスできます。
<api:check attr="_input.rows@next">
  <api:set  attr="uri"  value="[_input.rows@next]" />
  <api:else>
    <api:set  attr="uri"  value="<first page's URL>" />
  </api:else>
<api:check> 

他のSELECT ステートメントをサーバー側で処理

任意のHTTP 要求をGET メソッドで作成できます。SELECT クエリの他のコンポーネントにアクセスするには、_query アイテムを使用します。 GET メソッドでは、_query アイテムには、Sync App に発行されたクエリを表す次の属性があります。

querySQL クエリ。次に例を示します。
SELECT Id, Name FROM Accounts WHERE City LIKE '%New%' AND COUNTRY = 'US' GROUP BY CreatedDate ORDER BY Name LIMIT 10,50;
selectcolumnsSELECT ステートメントで指定されたカラムを含むカンマ区切りのリスト。例えば、この例ではId およびName カラムです。
tableSELECT ステートメントで指定されたテーブル名。例えば、この例ではAccounts です。
criteriaステートメントのWHERE 句。
City LIKE '%New%' AND COUNTRY = 'US'
orderbyORDER BY 句で指定されたカラム。例えば、この例ではName です。
groupbySELECT ステートメントのGROUP BY 句。例えば、この例ではCreatedDate です。
limitSELECT ステートメントのLIMIT またはTOP 句で指定されたリミット。例えば、この例では50 です。
offsetSELECT ステートメントのLIMIT またはTOP 句で指定されたオフセット。例えば、この例では10 です。
isjoinクエリが結合かどうか。
jointable結合するテーブル。
isschemaonlyクエリがスキーマ情報のみを取得するかどうか。

サーバー上でLIMIT を処理

API がサポートしている場合は、LIMIT 句を実装して、サーバーから取得する必要がある結果の数を制限できます。

API リクエストを作成するときに、_query アイテムのlimit 属性の値を参照します。OData API では、$top クエリ文字列パラメータを使用して制限を指定できます。以下に示します。

http://services.odata.org/V3/Northwind/Northwind.svc/Customers?$top=10

以下は対応するスクリプトです。

<api:check attr="_query.limit">
  <api:set  attr="uri"      value="http://services.odata.org/V3/Northwind/Northwind.svc/Customers?$top=[_query.limit]" />
</api:check> 

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:call
  • api:push
  • api:info
  • api:check
  • api:set

XML Connector for CData Sync

INSERT 実行

INSERT ステートメントが実行されると、Sync App は、スキーマのPOST メソッドを実行し、HTTP 挿入リクエストを作成します。

XML へのInsert の実行

POST メソッドでは、Items in API Script の1つである_input アイテムに、挿入するカラムが含まれます。 例えば、次のステートメントを考えてみましょう。

INSERT INTO Persons
(Name, Id)
VALUES
('Maria Anders','7') 

_input アイテムの属性を使用して、HTTP 挿入リクエストでこれらのカラム値を設定できます。OData API では、これはHTTP POST です。OData API で先の挿入を行うためのPOST データは次のとおりです。

<entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
  <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
  <content type="application/xml">
    <m:properties>
      <d:Name m:type="Edm.String">Maria Anders</d:Name>
      <d:ID m:type="Edm.Int32">7</d:ID>
    </m:properties>
  </content>
</entry>
サンプルスキーマの対応するPOST メソッドでは、必須カラムが最初に検証され、それからPOST データを定義するために使用されます。カラムが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。

必要な属性が存在することを検証したら、POST データにカラムの値を設定できます。"data" 属性をPOST データに設定します。api:set キーワードのボディは、このように長い、もしくは複数行の値を設定する際に便利です。

api:call キーワードは、HTTP 要求を行う操作を呼び出します。操作を呼び出す前に、api:set を使用してメソッド属性をapi:script キーワードのスコープ内で必要なHTTP メソッドに設定します。

<api:script method="POST">
    <api:set attr="method" value="POST"/>
    <api:validate attr="_input.Name" desc="Name and Id are required to insert." />
    <api:validate attr="_input.Id" desc="Name and Id are required to insert." />
    <api:set attr="data">
      <entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
        <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
        <content type="application/xml">
          <m:properties>
            <d:Name m:type="Edm.String">[_input.Name]</d:Name>
            <d:ID m:type="Edm.Int32">[_input.Id]</d:ID>
          </m:properties>
        </content>
      </entry>
    </api:set>
    <api:call op="xmlproviderGet"/>
  </api:script>
  
INSERT 構文はデータを返すことがあります。例えば、新しいレコードからの発行されたId です。挿入から返された値にアクセスしたい場合には、api:callキーワードの代わりにapi:push キーワードを使います。

INSERT ステートメントのコンポーネントへのアクセス

POST メソッドでは、_query アイテムに次の属性が含まれます。

query次のステートメントのような、SQL ステートメント。
INSERT INTO Account (account_name, account_type) VALUES ('Contoso','Company')
tableSQL ステートメント内のテーブル。例えば、先のクエリのAccount です。

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:set
  • api:validate
  • api:call

XML Connector for CData Sync

UPDATE 実行

UPDATE ステートメントが実行されると、Sync App はスキーマのMERGE メソッドを実行し、HTTP 更新リクエストを作成します。

このメソッドの詳細な例を見るには、スキーマのカスタマイズ を参照してください。

XML へのUpdate の実行

MERGE メソッドでは、Items in API Script の1つである_input アイテムに、更新するカラムが含まれます。例えば、次のステートメントを考えてみましょう。

UPDATE Persons 
SET Name='Ana Trujilo'
WHERE Id = '7' 

_input アイテムの属性を使用して、HTTP 更新リクエストでこれらのカラム値を設定できます。OData API では、これはHTTP OUT またはPATCH です。OData API で先の更新を行うためのPUT データは次のとおりです。

<entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
  <id>http://services.odata.org/V4/OData/%28S%28tjlj1hwyun3kt2iv0ef21c2d%29%29/OData.svc//Persons(ID=4)</id>
  <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
  <content type="application/xml">
    <m:properties>
      <d:ID m:type="Edm.Int32">4</d:ID>
        <d:Name m:type="Edm.String">Ana Trujilo</d:Name>
    </m:properties>
  </content>
</entry>
サンプルスキーマの対応するMERGE メソッドでは、必須カラム、主キーが検証され、その後PUT データおよびURL で使用されます。インプットが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。

必要な属性が存在することを検証したら、PUT データにカラムの値を設定できます。"data" 属性をPUT データに設定します。api:set キーワードのボディは、このように長い、もしくは複数行の値を設定する際に便利です。

api:call キーワードは、HTTP 要求を行う操作を呼び出します。操作を呼び出す前に、api:set を使用してメソッド属性をapi:script キーワードのスコープ内で必要なHTTP メソッドに設定します。

<api:script method="MERGE">
  <api:set attr="method" value="PUT"/>
  <api:validate attr="_input.Id" desc="An Id is required to update." />
  <api:set attr="data">
    <entry xmlns:d="http://docs.oasis-open.org/odata/ns/data" xmlns:m="http://docs.oasis-open.org/odata/ns/metadata" xmlns="http://www.w3.org/2005/Atom">
      <api:set attr="uri" value="[uri]([_input.Id])" />
      <id>[uri]</id>
      <category scheme="http://docs.oasis-open.org/odata/ns/scheme" term="ODataDemo.Person" />
      <content type="application/xml">
        <m:properties>
          <d:ID m:type="Edm.Int32">[_input.Id]</d:ID>
          <api:check attr="_input.Name">
            <d:Name m:type="Edm.String">[_input.Name]</d:Name>
          </api:check>
        </m:properties>
      </content>
    </entry>
  </api:set>
  <api:call op="xmlproviderGet"/>
</api:script>

UPDATE ステートメントのコンポーネントにアクセス

MERGE メソッドでは、_query アイテムに次の属性が含まれます。

query次のステートメントのような、SQL ステートメント。
UPDATE Account SET Name='John' WHERE Id = @myId
tableSQL ステートメント内のテーブル。例えば、先のクエリのAccount です。
criteriaステートメントのWHERE 句。例えば、この例では次のWHERE 句です。
Id = @myId
nullupdatesnull 値またはnull パラメータ値を含む、UPDATE ステートメントのカンマ区切りのカラム。

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:set
  • api:validate
  • api:check
  • api:call

XML Connector for CData Sync

DELETE 実行

DELETE ステートメントが実行されると、Sync App は、スキーマのDELETE メソッドを実行し、HTTP 削除リクエストを作成します。

このメソッドの詳細な例を見るには、スキーマのカスタマイズ を参照してください。

XML へのDelete の実行

DELETE メソッドでは、Items in API Script の1つである_input アイテムに、削除するレコードの主キーが含まれます。 例えば、次のステートメントを考えてみましょう。

DELETE FROM Persons WHERE Id = '7'

以下は、OData API の対応する削除リクエストです。

DELETE myapi.com/Persons(7)

以下の対応するDELETE メソッドでは、必須カラム、主キーが最初に検証され、それからHTTP DELETE リクエスト内のURI を変更するために使用されます。

<api:script method="DELETE">
  <api:set attr="method" value="DELETE"/>
  <api:validate attr="_input.Id" desc="An Id is required to delete." />
  <api:set attr="uri" value="[uri]([_input.Id])" />
  <api:call op="xmlproviderGet"/>
</api:script>
  

インプットが提供されたかをチェックし、api:validate キーワードを伴わない場合には、ユーザーにアラートを出すことができます。主キー属性が存在することを確認したら、リクエストURL に主キーを指定できます。api:set キーワードを使ってURI 値を設定します。

api:call キーワードは、HTTP 要求を行う操作を呼び出します。操作を呼び出す前に、メソッド属性をapi:script キーワードのスコープ内で必要なHTTP メソッドに設定します。

DELETE ステートメントのコンポーネントへのアクセス

DELETE スクリプトでは、_query アイテムに次の属性が含まれます。

query次のステートメントのような、SQL ステートメント。
DELETE FROM Account WHERE Id = @myId
tableSQL ステートメント内のテーブル。例えば、先のクエリのAccount です。
criteriaステートメントのWHERE 句。例えば、この例では次のWHERE 句です。
Id = @myId

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:set
  • api:validate
  • api:call

XML Connector for CData Sync

Raw データ

Below is the structure of the Persons XML document used in the custom schema examples. This data is a simplified version of the XML response from the odata.org Northwind test service. This service is used to demonstrate data manipulation operations to XML-based REST APIs.

 
<values odata.context="http://services.odata.org/V4/OData/OData.svc/$metadata#Persons">
  <value>
    <ID>0</ID>
    <Name>Paula Wilson</Name>
  </value>
  <value>
    <ID>1</ID>
    <Name>Jose Pavarotti</Name>
  </value>
  <value>
    <ID>2</ID>
    <Name>Art Braunschweiger</Name>
  </value>
  <value odata.type="#ODataDemo.Customer">
    <ID>3</ID>
    <Name>Liz Nixon</Name>
    <TotalExpense>99.99</TotalExpense>
  </value>
  <value odata.type="#ODataDemo.Customer">
    <ID>4</ID>
    <Name>Liu Wong</Name>
    <TotalExpense>199.99</TotalExpense>
  </value>
  <value odata.type="#ODataDemo.Employee">
    <ID>5</ID>
    <Name>Jaime Yorres</Name>
    <EmployeeID>10001</EmployeeID>
    <HireDate>2000-05-30T00:00:00Z</HireDate>
    <Salary>15000</Salary>
  </value>
  <value odata.type="#ODataDemo.Employee">
    <ID>6</ID>
    <Name>Fran Wilson</Name>
    <EmployeeID>10002</EmployeeID>
    <HireDate>2001-01-02T00:00:00Z</HireDate>
    <Salary>12000</Salary>
  </value>
</values>

XML Connector for CData Sync

ストアドプロシージャの定義

ストアドプロシージャはデータソースのファンクションライクなインターフェースです。データの検索、変更、削除に使用できます。ストアドプロシージャは、SELECT、INSERT、UPDATE、またはDELETE ステートメントで一般的に表すことができないアクションをモデルします。ストアドプロシージャのモデリングは、ストアドプロシージャを実装するために同じ組み込みのデータ処理操作を使用できる点で、テーブルのモデリングと同様のプロセスです。

ストアドプロシージャスキーマ vs. テーブルスキーマ

少しの変更で、同じプロセスに従って、INSERT、UPDATE、DELETE ステートメントのサポートを追加するためのストアドプロシージャを作成できます。.rsd ファイル同様、info ブロックとデータ処理操作を呼び出すscript で構成される.rsb ファイルにストアドプロシージャを定義します。

カラムの代わりに、info ブロックでストアドプロシージャの入力パラメータと出力パラメータを定義します。attr 要素の代わりに、info ブロックのinput 要素を使用して入力を定義します。

他のSQL ステートメント同様、ストアドプロシージャが実行されるときは、_input 項目には入力パラメータが含まれます。_input 項目を使用すると、ストアドプロシージャの入力を操作入力にマッピングできます。

テーブルスキーマ同様、info ブロックを使用してレスポンスを処理できます。info ブロックのoutput 属性を使用して、ストアドプロシージャの出力を記述します。出力属性では、XPath を指定して階層データのノードを抽出できます。

ストアドプロシージャの例

次のストアドプロシージャは、Id を指定してPerson レコードを取得します。この完全に機能的なスキーマでは、要求の構築方法とXPath を使用して応答を解析する方法について示します。

ストアドプロシージャはスキーマのGET メソッドを実行します。このメソッドでAPI リクエストを構築します。必要な入力が提供されていることを確認し、ない場合はapi:validate キーワードでユーザーに警告します。文字列、日付、および数式での作業を簡素化するには、Value Formatters を使用します。

api:call キーワードで操作を呼び出します。データを返すには、オペレーション呼び出しのスコープ内にapi:push キーワードを挿入します。

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="GetODataPersonById" description="Retrieves the OData Person specified by Id.">
    <output name="ID"            other:xPath="/feed/entry/content/properties/ID" />
    <output name="EmployeeID"    other:xPath="/feed/entry/content/properties/EmployeeID" />
    <output name="Name"          other:xPath="/feed/entry/content/properties/Name" />
    <output name="TotalExpense"  other:xPath="/feed/entry/content/properties/TotalExpense" />
    <output name="HireDate"      other:xPath="/feed/entry/content/properties/HireDate" />
    <output name="Salary"        other:xPath="/feed/entry/content/properties/Salary" />  
  </api:info>
  
  <api:set attr="uri" value="http://services.odata.org/V4/OData/(S(5cunewekdibfhpvoh21u2all))/OData.svc/Persons" /> 
  
  <!-- The XPath attribute of the schema splits the XML into rows based on elements that repeat at the same level. -->
  <api:set attr="XPath" value="/entry/" />

  <!-- See the xmlproviderGet page in the Operations subchapter to set any needed HTTP parameters. -->
  <api:set attr="ContentType"   value="application/atom+xml" />

  <!-- The GET method corresponds to EXECUTE. Within the script block, you can see the URI modified to append a query string parameter. The results of processing are pushed to the schema's output.  -->
  <api:script method="GET">
    <api:set attr="method" value="GET"/>
    <api:set attr="uri" value="[uri]([_input.Id])?$format=atom"/>
    <api:call op="xmlproviderGet">
      <api:push />
    </api:call>
  </api:script>
	
</api:script>

キーワードの参照

このセクションで使われているキーワードの詳細情報は、API Script Reference を参照してください。

  • api:script
  • api:info
  • api:validate
  • api:set
  • api:call
  • api:push

XML Connector for CData Sync

オペレーション

Sync App は、XML データソースの処理において高いパフォーマンスのオペレーションを持ちます。これらのオペレーションはプラットフォームを問いません:これらのオペレーションを呼び出すスキーマファイルは、.NET およびJava 両方で使うことができます。Sync App を、.NET またはJava で書かれたユーザー自身のオペレーションによって拡張することも可能です。

Sync App では、次のオペレーションを持ちます:

オペレーション名説明
xmlproviderGetxmlproviderGet オペレーションは XML コンテントを処理するAPIScript オペレーションです。これにより、XML コンテントを行に分割できます。
oauthGetAccessTokenOAuth 1.0 では、リクエストトークンとアクセストークンとを交換します。 OAuth 2.0 では、アクセストークンを取得するか、リフレッシュトークンで新しいアクセストークンを取得します。
oauthGetUserAuthorizationURLユーザー認可URL を生成します。OAuth 2.0 は、この処理ではネットワークにアクセスしません。
utiladoSleep指定された時間(秒単位)プロセスを一時停止します。

XML Connector for CData Sync

xmlproviderGet

The xmlproviderGet operation is an APIScript operation that is used to process local and remote XML content. It allows you to split XML content into rows.

Required Parameters

  • URI: The URI parameter specifies the location of the XML content. This URI scheme can be file:// for local files or can specify a remote data source: http:// (or https://), s3://, gdrive://, box://, or ftp:// (ftps://). The URI connection property can also provide this input.
  • XPath: The XPath parameter is used to split the document into multiple rows. The Sync App will detect the row XPaths in the document when the DataModel property is set to FlattenedDocuments or Relational. See 階層データの解析 for a guide to configuring how the data is modeled.

    The XPath connection property can also provide the row XPaths. Specify the XPaths as absolute paths; define multiple paths in a semicolon-separated list.

    A wildcard XPath can also be used and is helpful in the case that the XPaths are all at the same height but contain different names:

    <rsb:set  attr="XPath" value="/feed/*" />

HTTP Operation

The xmlproviderGet operation can be used to make HTTP requests to XML data sources and process the results. It abstracts the complexity of connecting to XML-based REST APIs but also gives you control over the layers involved, providing the following inputs to configure authentication, the HTTP request and headers, and firewall traversal.

Column Mapping

The xmlproviderGet operation reads the カラム定義 from the api:info section of the table schema file. In the column definition, the other:xPath property maps the column value to an XML element.

Input Parameters

You can use api:set to specify the operation's input parameters, as shown below.

<rsb:set  attr="uri"                      value="NorthwindOData.xml" /> 

The connection properties also pass inputs to the operation; setting one of the following input attributes in the schema will override the connection property.

Processing

  • URI: The URI parameter specifies the location of the XML content. This URI scheme can be file:// for local files or can specify a remote data source: http:// (or https://), s3://, gdrive://, box://, or ftp:// (ftps://).
  • XPath: The XPath parameter is used to split the document into multiple rows. The Sync App will detect the row XPaths in the document when the DataModel property is set to FlattenedDocuments or Relational. See 階層データの解析 for a guide to configuring how the data is modeled.

    You can also set the XPath connection property to delineate the paths to the tables. Specify absolute paths and define multiple paths in a semicolon-separated list.

    A wildcard XPath can also be used and is helpful in the case that the XPaths are all at the same height but contain different names:

    <rsb:set  attr="XPath" value="/feed/*" />

HTTP

  • Method: The HTTP method that corresponds to the SQL data manipulation statement. The allowed values are GET, POST, PUT, DELETE, and MERGE. The default value is GET.
  • ContentType: The content type of the HTTP post. Relevant only if data is specified.
  • Data: Data to include in the put or the post. To post a file use a file:// URI.
  • Text: Input XML text (an alternative to URI).
  • Header:Name#: The name for each custom header to pass with the request.
  • Header:Value#: The value for each custom header to pass with the request.
  • ParamName#: The name for each parameter to pass with the request.
  • ParamValue#: The value for each parameter to pass with the request.
  • Cookie:*: Any cookies that should be added to the request.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • LogFile: The file where exchanged/transferred data is logged.
  • PushResponseHeader#: The response headers which should be returned from this operation. Any headers added to this list are returned as header:* parameters.
  • PushResponseCookie#: The response cookies which should be returned from this operation. Any cookies added to this list are returned as cookie:* parameters.

Authentication

  • User: The username used for authentication.
  • Password: The password used for authentication.
  • AuthScheme: The authentication method to use. Only relevant if User and Password are provided. The allowed values are BASIC, DIGEST, NONE, NTLM, NEGOTIATE. The default value is BASIC.
  • KerberosKDC: The KDC setting of Kerberos, available when AuthScheme is NEGOTIATE.
  • KerberosRealm: The Realm setting of Kerberos, available when AuthScheme is NEGOTIATE.
  • KerberosToken: The Kerberos token used for authentication.

OAuth

  • Version: The OAuth version. The allowed values are DISABLED, 1.0, 2.0. The default value is DISABLED.
  • Token: The access token for OAuth.
  • Token_Secret: The access token secret. OAuth 1.0 only.
  • Client_Id: The OAuth client Id. OAuth 1.0 only.
  • Client_Secret: The OAuth client secret. OAuth 1.0 only.
  • Sign_Method: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Other_Options: Other options to control the behavior of OAuth.

Proxy

  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, PROPRIETARY, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.

Firewall

  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, and SOCKS5. The default value is NONE.

Advanced Processing

  • ElementMapPath#: The XPath to the subelement that you want to specify as columns within your chosen row. This can be relative to the item (for example, title) or absolute (for example, /rss/@version).
  • ElementMapName#: The name of the chosen ElementMapPath. The ElementMapName input can be used to give a name to the XPath chosen in ElementMapPath.
  • ElementArrayMapPath#: The XPath to the element that you want to specify as an array.
  • ElementArrayMapName#: The name of the chosen ElementArrayMapPath. The ElementArrayMapName input can be used to give a name to the XPath chosen in ElementArrayMapPath.
  • AggregateFormat: The format to use with aggregate values. The allowed values are JSON, XML. The default value is XML.
  • AggregatePath#: The XPath to the element that you want to return as an aggregate.
  • AggregateName#: The name of the chosen aggregate. The AggregateName input can be used to give a name to the XPath chosen in AggregatePath.
  • ResultCodeXPath: The XPath of the result code element in the response.
  • ResultSuccessCode: The success code of the value located at ResultCodeXPath that is used to verify and identify the request as being successful.
  • ErrorMsgXPath: The XPath of the error message returned in the response.
  • IndexParentNodes: Multiple occurrences of the same element will be indexed if this is set to true. If set to false, multiple occurrences will be combined into an array. The allowed values are TRUE, FALSE. The default value is TRUE.
  • PushPrefix: The prefix to be prepended to each item attribute that is pushed.
  • EnablePaging: Specifies whether the Rows@Next input will be used for paging. The allowed values are TRUE, FALSE. The default value is FALSE.
  • OutputPrefix: Whether the prefix should be output with each pushed attribute of an item. The allowed values are TRUE, FALSE. The default value is FALSE.
  • PushOuterValueRow: Whether to generate special rows for paths outside of the repeat element when no other rows would contain them. If one of these rows is generated it will contain the values of all mapped paths outside the repeat element, along with a special attribute called @isoutervalue which is set to true. However, if there is a row in the repeat element which contains these values then the @isoutervalue is not pushed.

    The allowed values are TRUE, FALSE. The default value is FALSE.

Output Parameters

  • *: The elements and the attributes found within each item element.
  • header:*: Any headers requested from the PushResponseHeader# input (e.g. adding "Content-Type" to PushResponseHeader# will return "header:Content-Type")
  • cookie:*: Any cookies requested from the PushResponseCookie# input (e.g. adding "session" to PushResponseCookie# will return "cookie:session")
Note If you are using api:push to emit rows from within different invocations of this operation (either separate calls in the schema, or in a loop), it is recommended that you use api:map to copy all the elements from the output item produced by api:call into a temporary item that is then passed to api:push:
<api:call op="xmlproviderGet" out="output">
  <api:map from="output" to="temp" map="* = *" />
  <api:push item="temp" />
</api:call>
The items produced by this operation are required to have the same layout for performance reasons, which may not be the case if different documents are used in calls to this operation. Performing this map converts the item into a more flexible form which does not have the same layout restriction (though it may be slower to read from).

XML Connector for CData Sync

oauthGetAccessToken

The oauthGetAccessToken operation is an RSBScript operation that is used to facilitate the OAuth authentication and refresh flows.

The Sync App includes stored procedures that invoke this operation to complete the OAuth exchange. The following example schema briefly lists some of the typically required inputs before the following sections explain them in more detail.

See ストアドプロシージャの定義 for more information on working with custom stored procedures. For a guide to using the Sync App to authenticate, see the "Getting Started" chapter.

Creating a GetOAuthAccessToken Stored Procedure

Invoke the oauthGetAccessToken with the GetOAuthAccessToken stored procedure. The following inputs are required for most data sources and will provide default values for the connection properties of the same name.

<rsb:script xmlns:rsb="http://apiscript.com/ns?v1" xmlns:xs="http://www.w3.org/2001/XMLSchema"">

  <rsb:info title="GetOAuthAccessToken"   description="Obtains the OAuth access token to be used for authentication with various APIs."                                                         >
    <input  name="AuthMode"               desc="The OAuth flow. APP or WEB."                                                                                                                    />
    <input  name="CallbackURL"            desc="The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. " />
    <input  name="OAuthAccessToken"       desc="The request token. OAuth 1.0 only."                                                                                                             />
    <input  name="OAuthAccessTokenSecret" desc="The request token secret. OAuth 1.0 only."                                                                                                      />
    <input  name="Verifier"               desc="The verifier code obtained when the user grants permissions to your app."                                                                       />

    <output name="OAuthAccessToken"       desc="The access token."                                                                                                                              />
    <output name="OAuthTokenSecret"       desc="The access token secret."                                                                                                                       />
    <output name="OAuthRefreshToken"      desc="A token that may be used to obtain a new access token."                                                                                         />
 </rsb:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <rsb:set attr="OAuthVersion"                                                    value="MyOAuthVersion"                 />
  <!-- Set RequestTokenURL to the URL where the request for the request token is made. OAuth 1.0 only.-->
  <rsb:set attr="OAuthRequestTokenURL"                                            value="http://MyOAuthRequestTokenURL" />
  <!-- Set OAuthAuthorizationURL to the URL where the user logs into the service and grants permissions to the application. -->
  <rsb:set attr="OAuthAuthorizationURL"                                           value="http://MyOAuthAuthorizationURL" />
  <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
  <rsb:set attr="OAuthAccessTokenURL"                                             value="http://MyOAuthAccessTokenURL"   />
  <!-- Set GrantType to the authorization grant type. OAuth 2.0 only. -->
  <rsb:set attr="GrantType"                                                       value="CODE"                           />
  <!-- Set SignMethod to the signature method used to calculate the signature of the request. OAuth 1.0 only.-->
  <rsb:set attr="SignMethod"                                                      value="HMAC-SHA1"                      />
  <rsb:call op="oauthGetAccessToken">
    <rsb:push/>
  </rsb:call>
  
</rsb:script>

Writing the RefreshOAuthAccessToken Stored Procedure

You can also use oauthGetAccessToken to refresh the access token by providing the following inputs:

<rsb:script xmlns:rsb="http://apiscript.com/ns?v1" xmlns:xs="http://www.w3.org/2001/XMLSchema"">

  <rsb:info title="RefreshOAuthAccessToken" description="Refreshes the OAuth access token used for authentication." >
    <input  name="OAuthRefreshToken"        desc="A token that may be used to obtain a new access token."           /> 
    <output name="OAuthAccessToken"         desc="The authentication token returned."                               />
    <output name="OAuthTokenSecret"         desc="The authentication token secret returned. OAuth 1.0 only."        />
    <output name="OAuthRefreshToken"        desc="A token that may be used to obtain a new access token."           />
    <output name="ExpiresIn"                desc="The remaining lifetime on the access token."                      />

  </rsb:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <rsb:set attr="OAuthVersion"                                                    value="MyOAuthVersion"                 />
    <!-- Set GrantType to REFRESH. OAuth 2.0 only. -->
    <rsb:set attr="GrantType"            value="REFRESH" />
    <!-- Set SignMethod to the signature method used to calculate the signature of the request. OAuth 1.0 only.-->
    <rsb:set attr="SignMethod"           value="HMAC-SHA1" />
    <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
    <rsb:set attr="OAuthAccessTokenURL"  value="http://MyOAuthAccessTokenURL" />
    <!-- Set AuthMode to 'WEB' when calling RefreshOAuthAccessToken -->
    <rsb:set attr="AuthMode" value="WEB"/>
  <rsb:call op="oauthGetAccessToken">
    <rsb:push/>
  </rsb:call>
  
</rsb:script>

Input Parameters

  • OAuthVersion: The OAuth version. The allowed values are 1.0, 2.0. The default value is 1.0.
  • AuthMode: The OAuth flow. OAuth 2.0 only. If you choose the App mode, this operation will launch your browser and prompt you to authenticate with your account credentials. Set this parameter to WEB to authenticate a Web app or if the Sync App is not allowed to open a Web browser. The default value is APP.
  • OAuthRequestTokenURL: The URL where the Sync App makes a request for the request token. OAuth 1.0 only. Required for OAuth 1.0.
  • OAuthAuthorizationURL: The URL where the user logs into the service and grants permissions to the application. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthAccessTokenURL: The URL where the request for the access token is made. In OAuth 1.0, the authorized request token is exchanged for the access token.
  • CallbackURL: The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. This value must match the callback URL you specify when you register an app. Note that your data source may additionally require the port.
  • OAuthClientId: The client Id obtained when you register an app. Also called a consumer key.
  • OAuthClientSecret: The client secret obtained when you register an app. Also called a consumer secret.
  • OAuthAccessToken: The request token. OAuth 1.0 only.
  • OAuthAccessTokenSecret: The request token secret. OAuth 1.0 only.
  • OAuthRefreshToken: A token that may be used to obtain a new access token.
  • GrantType: Authorization grant type. OAuth 2.0 only. The allowed values are CODE, PASSWORD, CLIENT, REFRESH. The default value is CODE.
  • Verifier: The verifier code obtained when the user grants permissions to the Sync App. In the OAuth 2.0 code grant type, the verifier code is located in the code query string parameter of the callback URL. In OAuth 1.0, the verifier is located in the oauth_verifier query string parameter of the callback URL.
  • SignMethod: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Cert: Path for the PFX personal certificate file. OAuth 1.0 only.
  • CertPassword: Personal certificate password. OAuth 1.0 only.
  • OtherOptions: Other options to control the behavior of OAuth.
  • OAuthParam:*: Other parameters.
  • PostData: The HTTP POST data.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • LogFile: Specifies a file where the request and response are logged.
  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, PROPRIETARY, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, SOCKS5. The default value is NONE.
  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.

Output Parameters

  • OAuthAccessToken: The access token.
  • OAuthTokenSecret: The access token secret.
  • OAuthRefreshToken: A token that may be used to obtain a new access token.
  • ExpiresIn: The remaining lifetime on the access token.
  • OAuthParam:*: Other parameters sent from the server.

XML Connector for CData Sync

oauthGetUserAuthorizationURL

The oauthGetUserAuthorizationURL is an RSBScript operation that is used to facilitate the OAuth authentication flow for Web apps, for offline apps, and in situations where the Sync App is not allowed to open a Web browser. To pass the needed inputs to this operation, define the GetOAuthAuthorizationURL stored procedure. The Sync App can call this internally.

Define stored procedures in .rsb files with the same file name as the schema's title. The example schema briefly lists some of the typically required inputs before the following sections explain them in more detail.

For a guide to authenticating in the OAuth flow, see the "Getting Started" chapter. You can find more information about stored procedures and how to write them in ストアドプロシージャの定義.

Writing the GetOAuthAuthorizationURL Stored Procedure

Call oauthGetUserAuthorizationURL in the GetOAuthAuthorizationURL stored procedure.

<rsb:script xmlns:rsb="http://apiscript.com/ns?v1" xmlns:xs="http://www.w3.org/2001/XMLSchema"">

  <rsb:info title="Get OAuth Authorization URL" description="Obtains the OAuth authorization URL used for authentication with various APIs."                                                          >
    <input  name="CallbackURL"                  desc="The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. " />

    <output name="URL"                          desc="The URL where the user logs in and is prompted to grant permissions to the app. "                                                               />
    <output name="OAuthAccessToken"             desc="The request token. OAuth 1.0 only."                                                                                                             />
    <output name="OAuthTokenSecret"             desc="The request token secret. OAuth 1.0 only."                                                                                                      />
  </rsb:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <rsb:set attr="OAuthVersion"          value="MyOAuthVersion"                 />
  <!-- Set ResponseType to the desired authorization grant type. OAuth 2.0 only.-->
  <rsb:set attr="ResponseType"           value="code"                           />
  <!-- Set SignMethod to the signature method used to calculate the signature. OAuth 1.0 only.-->
  <rsb:set attr="SignMethod"            value="HMAC-SHA1"                      />
  <!-- Set OAuthAuthorizationURL to the URL where the user logs into the service and grants permissions to the application. -->
  <rsb:set attr="OAuthAuthorizationURL"  value="http://MyOAuthAuthorizationURL" />
  <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
  <rsb:set attr="OAuthAccessTokenURL"   value="http://MyOAuthAccessTokenURL"/>
  <!-- Set RequestTokenURL to the URL where the request for the request token is made. OAuth 1.0 only.-->
  <rsb:set attr="OAuthRequestTokenURL"   value="http://MyOAuthRequestTokenURL"       />
  <rsb:call op="oauthGetUserAuthorizationUrl">
    <rsb:push/>
  </rsb:call>
  
</rsb:script>

<p>

Input Parameters

  • OAuthVersion: The OAuth version. The allowed values are 1.0, 2.0. The default value is 1.0.
  • OAuthAuthorizationURL: The URL where the user logs into the service and grants permissions to the application. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthRequestTokenURL: The URL where the Sync App makes a request for the request token. OAuth 1.0 only. Required for OAuth 1.0.
  • CallbackURL: The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. This value must match the callback URL you specify when you register an app. Note that your data source may additionally require the port. The default value is http://127.0.0.1/.
  • OAuthClientId: The client Id. Also called a consumer key.
  • OAuthClientSecret: The client secret. Also called a consumer secret.
  • ResponseType: The desired authorization grant type. OAuth 2.0 only. The allowed values are CODE, IMPLICIT. The default value is CODE.
  • SignMethod: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, RSA-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Cert: Path for the personal certificate PFX file. OAuth 1.0 only.
  • CertPassword: Personal certificate password. OAuth 1.0 only.
  • OtherOptions: Other options to control the behavior of OAuth.
  • OAuthParam:*: Other parameters. OAuth 1.0 only.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, PROPRIETARY, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, SOCKS5. The default value is NONE.
  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.

Output Parameters

  • URL: The URL where the user logs in and is prompted to grant permissions to the app. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthAccessToken: The request token. OAuth 1.0 only.
  • OAuthTokenSecret: The request token secret. OAuth 1.0 only.
  • OAuthParam:*: Other parameters sent from the server. OAuth 1.0 only.

XML Connector for CData Sync

utiladoRefreshOAuth

The utiladoRefreshOAuth operation causes the Sync App to refresh any OAuth tokens that are close to expiring. This has no effect when AuthScheme is set to a non-OAuth authentication mode .

The operation takes no parameters and may be called like this:

<api:call op="utiladoRefreshOAuth" />

XML Connector for CData Sync

utiladoSleep

The utiladoSleep operation causes the process that calls it to suspend execution for a specifed duration.

The required parameter is timeout. The units are in seconds. For example,

<api:call op="utiladoSleep?timeout=2" />

XML Connector for CData Sync

高度な機能

このセクションでは、XML Sync App の高度な機能を厳選して説明します。

ユーザー定義ビュー

Sync App を使用すると、事前設定されたクエリによって内容が決定されるユーザー定義ビューと呼ばれる仮想テーブルを定義できます。 このビューは、ドライバーに発行されるクエリを直接制御できない場合に有効です。 カスタムビューの作成と設定の概要については、ユーザー定義ビュー を参照してください。

SSL の設定

SSL の設定 を使用して、Sync App が証明書のネゴシエーションをどのように扱うかを調整します。さまざまな証明書形式を選択できます。 詳しくは、接続文字列オプションにあるSSLServerCert プロパティを参照してください。

ファイアウォールとプロキシ

Windows プロキシとHTTP プロキシを含むファイアウォールとプロキシ に合致するようSync App を設定します。トンネル接続を設定することもできます。

クエリ処理

Sync App は、XML にできるだけ多くのSELECT ステートメント処理をオフロードし、残りのクエリをクライアント側のインメモリで処理します。

詳しくはクエリ処理 を参照してください。

ログ

CData ログを調整するために使用可能な設定の概要については、ログ を参照してください。基本的なロギングでは、 次の2つの接続プロパティを設定するだけです。LogModules 接続プロパティを使用してログに記録する情報のサブセットを選択できる、 より洗練されたロギングをサポートする多数の機能があります。

XML Connector for CData Sync

SSL の設定

SSL 設定のカスタマイズ

デフォルトでは、Sync App はサーバーの証明書をシステムの信頼できる証明書ストアと照合してSSL / TLS のネゴシエーションを試みます。

別の証明書を指定するには、利用可能なフォーマットについてSSLServerCert プロパティを参照してください。

クライアントSSL 証明書

XML Sync App はクライアント証明書の設定もサポートしています。次を設定すれば、クライアント証明書を使って接続できます。

  • SSLClientCert:クライアント証明書のための証明書ストア名。
  • SSLClientCertType:TLS / SSL クライアント証明書を格納するキーストアの種類。
  • SSLClientCertPassword:TLS / SSL クライアント証明書のパスワード。
  • SSLClientCertSubject:TLS / SSL クライアント証明書のサブジェクト。

XML Connector for CData Sync

ファイアウォールとプロキシ

Firewall またはProxy 経由の接続

HTTP プロキシ

Windows のシステムプロキシ経由の接続では、接続プロパティを追加で設定する必要はありません。他のプロキシに接続するには、ProxyAutoDetect をfalse に設定します。

さらにHTTP プロキシへの認証には、ProxyServer とProxyPort に加えてProxyAuthScheme、ProxyUser、およびProxyPassword を設定します。

その他のプロキシ

次のプロパティを設定します。

  • プロキシベースのファイヤーウォールを使用するには、FirewallType、FirewallServer、およびFirewallPort を設定します。
  • 接続をトンネルするには、FirewallType をTUNNEL に設定します。
  • 認証するには、FirewallUser とFirewallPassword を設定します。
  • SOCKS プロキシへの認証には、さらにFirewallType をSOCKS5 に設定します。

XML Connector for CData Sync

API Script Reference

CData Sync App は、XML に対して、ローカルおよびリモートデータをリレーショナルテーブル、ビュー、およびストアドプロシージャにモデル化することにより、標準準拠のアクセスを可能にします。XML は、API Script と呼ばれる独自のコンフィギュレーション言語を持ち、お客様のAPI のリソースのためのスキーマをマークアップするために使うことができます。API Script は、XML へのリクエスト生成および返されたフィードのパースを容易にします。

API Script は、データアクセスおよびプロセッシングのあらゆる側面の管理を可能にするハイレベルなプログラミング言語です。スキーマはAPI Script エンジンにより変換されたスクリプトです。

スクリプトを書く際には、キーワード、アトリビュート、アイテム、オペレーション、およびフィードを使います。

  • Attribute:name-value ペアのname 部分で、attribute="address", value="123 Pleasant Lane" のように使われます。
  • Item:Attribute-value ペアの関連するグループで、インプットとアウトプットを説明します。次に例を示します。
    Attribute="name" value="Bob"
    Attribute="address" value="123 Pleasant Lane"
    Attribute="phone" value="123-4567"
  • Feed:アイテムのリスト。例えば、アドレスと電話番号を含む顧客のリストなど
  • Operation:アイテムをインプットとして受け、フィードをアウトプットとして生成するメソッドの一般名。
  • Keyword:API Script の構文で、api:set のようなもの。
API Script は多様なキーワードを持ち、次のようなことが可能です:
  • フィードの上にカラムを投影し、フィードアイテムを行に分割する。
  • 実行フローを管理するためにIf/else 構文やcase 構文などのハイレベルなプログラミング構成を使う。
  • オペレーションを呼び出し、カスタムオペレーションを定義する。
  • アイテム、オペレーションのインプット、フィード、オペレーションの結果を作成し、変更する。
  • アイテムの反復によりオペレーション呼び出しからの結果フィードを処理する。

XML Connector for CData Sync

Items in API Script

フィードは、アイテムにより成り立ちますが、API Script ではアイテムはフィードの部品という以上の働きをします。アイテムは、オペレーションにインプットを提供するために使われることもあります。

アイテムの宣言

API Script では、アイテムは、api:set キーワードを通じて作成され、名付けられ、アトリビュート値を与えられます。

<api:set item="input" attr="mask" value="*.txt" />
このラインは、"input" という名前のアイテムの、"mask" アトリビュートに"*text" という値をセットします。この場合、インプットアイテムはAPI Script の変数の働きをします。

ただし、"input" という名前のアイテムは宣言されていません。その代わりに、初回にアトリビュートをセットしようとすると、そのアイテムが生成されます。上の例では、インプットアイテムが存在していない場合、そのアイテムが生成され、mask アトリビュートがセットされます。

アトリビュート値の選択

アトリビュートを参照するには、 item.attribute (e.g., "input.mask") シンタックスを使います。あるアトリビュート値をクエリするには、括弧 ([]) でアトリビュート名を囲います。これは、文字列リテラルとしてではなく、文字列を評価したいということを示します。

例えば、次のコードスニペットを見てください:

<api:set item="item1" attr="attr1" value="value1"/>
<api:set item="item1" attr="attr2" value="item1.attr1"/>
<api:set item="item1" attr="attr3" value="[item1.attr1]"/>

結果は次のとおりです:

  • item1.attr1 は、"value1" のリテラル文字列の値を割り振られます。
  • item1.attr2 は、"item1.attr1" のリテラル文字列の値を割り振られます。
  • item1.attr3 は、"value1" の値を割り振られます。これは、文字列"[item1.attr1]" がitem1 のattr1 アトリビュートとして評価されるからです。
文字列リテラルにおいて、\ を使って、括弧からエスケープすることができます。

デフォルトアイテム

API Script では、デフォルトアイテムという、アイテムの層の中に黙示的で名付けられていないアイテムがあります。 次の2つのケースでは、デフォルトアイテムは共通してスクリプトをより短く、簡単に書くために使われています。

  • オペレーションの呼び出し:デフォルトアイテムは、他に指定されたアイテムがない場合に、デフォルトで呼び出されたオペレーションに渡されるアイテムです。これはつまり、api:set を使って、デフォルトの名付けられていないアイテムのアトリビュートを書いて、そのアトリビュートがスクリプト内の次のオペレーションのインプットとして渡されることを意味します。これは、オペレーションに必要なパラメータを提供する一つの方法です。
  • オペレーションまたはスクリプトのアウトプット内の現在のアイテムを処理:オペレーションの結果の変数名を指定しなかった場合、オペレーションを起動するapi:call ブロックの内部でデフォルトアイテムはオペレーションで生成された現在のアイテムを参照します。
API Script のキーワードのアイテムアトリビュートを単に省略することでデフォルトアイテムを操作する:
<api:set attr="path" value="." />

Named Items

スクリプト内で宣言されたアイテムに加えて、スクリプトのスコープでは、いくつかのビルトインアイテムが利用可能です。 API Script では、ビルトイン、もしくは特殊なアイテムが利用可能で、接続文字列およびSQL クエリへのアクセスのインターフェースを提供します。 これらの特殊なアイテムはインプットをデータ処理オペレーションにマッピングするために役立ちます。

以下のセクションで、特殊なアイテムについて説明します。

Script Inputs (_input)

スクリプトへのインプットは_input アイテムから参照されます。 SQL ステートメントはテーブルおよびストアドプロシージャのスキーマへのインプットを提供します:SELECT ステートメントでは、_input アイテムは、WHERE 句において指定されたカラム、もしくは疑似カラムを含みます。

スクリプト内のデフォルトアイテムから値を読む場合、_input から値を読んでいます。同様に、デフォルトアイテムに書き込みたいアトリビュートは、インプットスクリプトと共にオペレーションのパラメータとして渡されます。情報ブロック、もしくはスクリプト内に定義された変数だけが_input アイテム内では有効です。

api:call ブロックの内部では、_input はデフォルトアイテムではなく、アクセスするためには名前を参照しなければなりません。

Script Outputs (_out[n])

api:call キーワードにより生成されたフィード内の現在のアイテムは、デフォルトアイテムもしくは名前を指定された特殊アイテム"_outX" を通じてアクセスすることができます。X はapi:call のネスティングのレベルです。例えば、単一のapi:call キーワードの内部の場合、アイテム名は"_out2" です。api:call キーワードの3つのネストレベルの内部の場合、_out3 となります。

接続文字列プロパティ (_connection)

The _connection item has the connection properties of the Sync App.The Sync App does not perform any validation of the connection string properties.It is left to the schema author to decide which properties are required, how they are used, etc.

In addition to providing access to the connection properties, the _connection item can be used to store pieces of data in a connection.For example, it may be necessary to store session tokens that can be reused while a connection lasts.You can use the api:set keyword to store any values, as shown in the code example below:

<api:set attr="_connection._token" value="[oauth.connection_token]"/>

Note:You can set only the attributes that start with the _ symbol.This is done so that the connection properties set by the user cannot be overriden.

SQL Clauses (_query)

The _query item has the following attributes that describe the query that was issued to the Sync App:

querySQL ステートメント。次に例を示します。
SELECT Id, Name FROM Accounts WHERE City LIKE '%New%' AND COUNTRY = 'US' GROUP BY CreatedDate ORDER BY Name LIMIT 10,50;
selectcolumnsA comma-separated list of the columns in the SELECT clause.For example, the Id and Name columns in the example.If "*" is specified in the SELECT clause, the value of [_query.selectcolumns] is "*".
tableテーブル名。For example, Accounts in the example.
isjoinWhether the query is a join.
jointableThe table in the JOIN clause.
criteriaThe WHERE clause.For example, the following WHERE clause in the example:
City LIKE '%New%' AND COUNTRY = 'US'
orderbyThe ORDER BY clause.For example, Name in the example.
groupbyThe GROUP BY clause.For example, CreatedDate in the example.
limitThe limit specified in the LIMIT or TOP clauses of the SELECT statement.For example, 50 in the example.
offsetThe offset specified in the LIMIT or TOP clauses of the SELECT statement.For example, 10 in the example.
insertselectThe SELECT statement nested in an INSERT statement.
updateselectThe SELECT statement nested in an UPDATE statement.
upsertselectThe SELECT statement nested in an UPSERT statement.
deleteselectThe SELECT statement nested in a DELETE statement.
bulkoperationcolumnsThe columns of the table the bulk operation modifies, separated by commas.For example, consider the following query:
INSERT INTO Account(account_name, account_type) SELECT customer_name, customer_type FROM Customer#TEMP
[_query.bulkoperationcolumns] returns the following:
[account_name], [account_type]
temptablecolumnsThe columns selected from the temp table in a bulk operation, separated by commas.For example, consider the following query:
DELETE FROM Account WHERE EXISTS SELECT customer_name, customer_type FROM Customer#TEMP
[_query.temptablecolumns] returns the following:
[customer_name], [customer_type]
nullupdatesThe columns of an UPDATE statement, separated by commas, that contain a null value or a null parameter value.
isschemaonlyWhether the query retrieves only schema information.

XML Connector for CData Sync

Value Formatters

Value formatters enable you to generate new values with specific formatting. You can use value formatters to perform string, date, and math operations on values.

The general format for invoking formatters is

[ item.attribute | formatter(parameters) | formatter (parameters) | ...]
where formatter is the name of the formatter and parameters is an optional set of parameters to control formatter output. Formatter output can be provided as input to another formatter with the pipe character ("|").

Examples

  • In the following snippet any "*" character in the myid attribute's value is replaced by "-", and the resulting value is assigned to input1.id.
    <api:set attr="input1.id" value="[myid | replace('*', '-')]"/>
  • Below, two value formatters are chained with the pipe ("|") character. In the example, only .log files are pushed from the operation.
    <api:call op="fileListDir">
      <api:check attr="name" value="[filename|tolower | endswith('.log')]">
        <api:push/>
      </api:check>
    </api:call>

XML Connector for CData Sync

String Formatters

[attr | allownull()]

Returns NULL if the attribute does not exist or the value if it does.

[attr | arrayfind(substring)]

Returns the index at which the string is found in the attribute array. The index is 1 based.

  • searchstring: The string to search for in the original value.

[attr | base64decode()]

Converts the attribute value to a base 64 decoded string.

[attr | base64encode()]

Converts the attribute value to a base 64 encoded string.

[attr | capitalize()]

Returns the original attribute value with only its first character capitalized.

[attr | capitalizeall()]

Returns the original attribute value with the first character of all words capitalized.

[attr | center(integer_width[, character])]

Returns the attribute value centered in a string of width specified by the first parameter. Padding is done using the fillchar specified by the second parameter.

  • width: The total width of the output string.
  • character: The optional character used for padding. If not specified this defaults to a space.

[attr | contains(value[, ifcontains][, ifnotcontains])]

Returns true (or ifcontains) if the attribute value contains the parameter value, false (or ifnotcontains) otherwise.

  • value: The string to find from the attribute value.
  • ifcontains: The optional value returned if the attribute value contains the parameter value.
  • ifnotcontains: The optional value returned if the attribute value does not contain the parameter value.

[attr | count(substring)]

Returns the number of occurrences in the attribute value of a substring specified by the first parameter.

  • substring: The substring to search for in the attribute value.

[attr | currency([integer_count])]

Returns the numeric value formatted as currency.

  • count: The optional number specifying how many places to the right of the decimal are displayed. The default is 2.

[attr | decimal([integer_count])]

Returns the numeric value formatted as a decimal number.

  • count: The optional number that indicates how many places to the right of the decimal are displayed. Default is 2.

[attr | def([notexists][, exists])]

Checks for the existence of an attribute and returns the specified parameter value if it does not.

  • notexists: The optional value to return if the attribute value does not exist.
  • exists: The optional value to return if the original attribute exists. If not specified, the original value of the attribute is returned.

[attr | empty(value)]

Returns the specified value if the attribute value is empty, otherwise the original attribute value.

  • value: The value that will be used if the attribute is empty.

[attr | endswith(substring[, iftrue][, iffalse])]

Determines whether the attribute value ends with the specified parameter. Returns true (or iftrue) if the attribute ends with the value and false (or iffalse) if not.

  • substring: The string expected at the end.
  • iftrue: The optional value returned if the attribute value ends with the parameter value.
  • iffalse: The optional value returned if the attribute value does not end with the parameter value.

[attr | equals(value[, ifequals][, ifnotequals])]

Compares the attribute value with the first parameter value and returns true (or ifequals) if they are equal and false (or ifnotequals) if they are not.

  • value: The string to compare with the attribute value.
  • ifequals: The optional value returned if the attribute value equals the value represented by the first parameter.
  • ifnotequals: The optional value returned if the attribute value does not equal the value represented by the first parameter.

[attr | extendtabs([integer_width])]

Replaces all tab characters found in the attribute value with spaces. If the tab size specified by the parameter is not given, a default tab size of 8 characters is used.

  • width: The optional tab width, defaults to 8 if not specified.

[attr | expr(expression)]

Evaluates the mathematical expression.

  • expression: The expression.

[attr | find(substring[, integer_startindex])]

Returns the lowest zero-based index at which the substring is found in the attribute value.

  • substring: The string to search for in the attribute value.
  • startindex: The optional index at which to start the search.

[attr | getlength()]

Returns the number of characters in the attribute value.

[attr | hmacshamd5([key], [toBase64, isBase64Encoded])]

Encrypt a string with the passed-in key and HmacSHAMD5 algorithm.

  • encodetobase64: The optional boolean value that specifies whether to convert the result into a base 64 encoded string. Default is true.
  • isBase64Encoded: The optional boolean value that specifies whether the input is base 64 encoded. Default is false.

[attr | hmacsha1([key], [toBase64, isBase64Encoded])]

Encrypt a string with the passed-in key and HmacSHA1 algorithm.

  • encodetobase64: The optional boolean value that specifies whether to convert the result into a base 64 encoded string. Default is true.
  • isBase64Encoded: The optional boolean value that specifies whether the input is base 64 encoded. Default is false.

[attr | hmacsha256([key], [toBase64, isBase64Encoded])]

Encrypt a string with the passed-in key and HmacSHA256 algorithm.

  • encodetobase64: The optional boolean value that specifies whether to convert the result into a base 64 encoded string. Default is true.
  • isBase64Encoded: The optional boolean value that specifies whether the input is base 64 encoded. Default is false.

[attr | hmacsha512([key], [toBase64, isBase64Encoded])]

Encrypt a string with the passed-in key and HmacSHA512 algorithm.

  • encodetobase64: The optional boolean value that specifies whether to convert the result into a base 64 encoded string. Default is true.
  • isBase64Encoded: The optional boolean value that specifies whether the input is base 64 encoded. Default is false.

[attr | ifequal(value[, ifequals][, ifnotequals])]

Compares the attribute value with the first parameter value and returns true (or ifequals) if they are equal and false (or ifnotequals) if they are not.

  • value: The string to compare with the attribute value.
  • ifequals: The optional value returned if the attribute value equals the value represented by the first parameter.
  • ifnotequals: The optional value returned if the attribute value does not equal the value represented by the first parameter.

[attr | ifmatches(value[, ifmatch][, ifnotmatch])]

Returns true (or ifmatch) if the attribute value matches the first parameter, otherwise false (or ifnotmatch).

  • value: The value that will be compared with the attribute value.
  • ifmatch: The optional value returned if the attribute value matches the parameter value.
  • ifnotmatch: The optional value returned if the attribute value does not match the parameter value.

[attr | iftrue([iftrue][, iffalse])]

Checks the attribute value and returns true (or iftrue) if true and false (or iffalse) if false.

  • iftrue: The optional value returned if the attribute value is true.
  • iffalse: The optional value returned if the attribute value is false.

[attr | implode([separator])]

Implodes multiple values to a string separated by a separator.

  • separator: The optional separator.

[attr | insert(integer_index, string)]

Inserts the specified string at the specified index.

  • index: The zero-based index of the position in the original value where the new string should be inserted.
  • string: The string to insert into the original value.

[attr | isalpha([ifalpha][, ifnotalpha])]

Returns true (or ifalpha) if all characters in the attribute value are alphabetic and there is at least one character, false (or ifnotalpha) otherwise.

  • ifalpha: The optional value returned if the attribute value is alphabetic.
  • ifnotalpha: The optional value returned if the attribute value is not alphabetic.

[attr | isalphabetic([ifalpha][, ifnotalpha])]

Returns true (or ifalpha) if all characters in the attribute value are alphabetic and there is at least one character, false (or ifnotalpha) otherwise.

  • ifalpha: The optional value returned if the attribute value is alphabetic.
  • ifnotalpha: The optional value returned if the attribute value is not alphabetic.

[attr | isalphanum([ifalphanum][, ifnotalphanum])]

Returns true (or ifalphanum) if all characters in the attribute value are alphanumeric and there is at least one character, false (or ifnotalphanum) otherwise.

  • ifalphanum: The optional value returned if the attribute value contains only alphabetic or numeric characters.
  • ifnotalphanum: The optional value returned if the attribute value contains nonalphabetic or nonnumeric characters.

[attr | isalphanumeric([ifalphanum][, ifnotalphanum])]

Returns true (or ifalphanum) if all characters in the attribute value are alphanumeric and there is at least one character, false (or ifnotalphanum) otherwise.

  • ifalphanum: The optional value returned if the attribute value contains only alphabetic or numeric characters.
  • ifnotalphanum: The optional value returned if the attribute value contains nonalphabetic or nonnumeric characters.

[attr | isdigit([ifnum][, ifnotnum])]

Returns true (or ifnum) if all characters in the attribute value are digits and there is at least one character, false (or ifnotnum) otherwise.

  • ifnum: The optional value returned if the attribute value is numeric.
  • ifnotnum: The optional value returned if the attribute value is not numeric.

[attr | islower([iflower][, ifnotlower])]

Returns true (or iflower) if all letters in the attribute value are lowercase and there is at least one character that is a letter, false (or ifnotlower) otherwise.

  • iflower: The optional value returned if the attribute value is lowercase.
  • ifnotlower: The optional value returned if the attribute value is not lowercase.

[attr | isnumeric([ifnum][, ifnotnum])]

Returns true (or ifnum) if all characters in the attribute value are digits and there is at least one character, false (or ifnotnum) otherwise.

  • ifnum: The optional value returned if the attribute value is numeric.
  • ifnotnum: The optional value returned if the attribute value is not numeric.

[attr | isspace([ifspace][, ifnotspace])]

Return true (or ifspace) if there are only white-space characters in the attribute value and there is at least one character, false (or ifnotspace) otherwise.

  • ifspace: The optional value returned if the attribute value is a space.
  • ifnotspace: The optional value returned if the attribute value is not a space.

[attr | isupper([ifupper][, ifnotupper])]

Returns true (or ifupper) if all letters in the attribute value are uppercase and there is at least one character that is a letter, false (or ifnotupper) otherwise.

  • ifupper: The optional value returned if the attribute value is uppercase.
  • ifnotupper: The optional value returned if the attribute value is not uppercase.

[attr | join([separator])]

Implodes multiple values to a string separated by a separator.

  • separator: The optional separator.

[attr | jsonescape()]

Converts the attribute value to a JSON-escaped, single-line string.

[attr | just(integer_width[, character])]

Returns the attribute value left-justified in a string of length specified by the first parameter. Padding is done using the fillchar specified by the second parameter.

  • width: The total width of the output string.
  • character: The optional character used for padding. The default is a space.

[attr | lfind(substring[, integer_startindex])]

Returns the lowest zero-based index at which the substring is found in the attribute value.

  • substring: The string to search for in the attribute value.
  • startindex: The optional index at which to start the search.

[attr | ljust(integer_width[, character])]

Returns the attribute value left-justified in a string of length specified by the first parameter. Padding is done using the fillchar specified by the second parameter.

  • width: The total width of the output string.
  • character: The optional character used for padding. The default is a space.

[attr | lsplit(delimiter, integer_index)]

Splits the string represented by the attribute value into tokens delimited by the first parameter and returns the token at the index specified by the second parameter; counts from the left.

  • delimiter: The string used as a separator for splitting the string into tokens.
  • index: The index of the token requested where the first token is at index 1.

[attr | match(pattern[, index][, option])]

Searches the string represented by the attribute value for an occurrence of the regular expression supplied in the pattern parameter.

  • pattern: The regular expression pattern to match.
  • index: The optional numbered index of the match to return. The default is 0.
  • option: The optional comma-separated list of regular expression options. Some of the commonly used options are IgnoreCase, Multiline, Singleline, and IgnorePatternWhitespace.

[attr | md5hash([converttobase64])]

Computes the MD5 hash of the attribute value.

  • encodetobase64: The optional boolean value that specifies whether to convert the result into a base 64 encoded string. Default is true.

[attr | notequals(value[, notequals][, equals])]

Compares the attribute value with the first parameter value. Returns true (or notequals) if they are not equal and false (or equals) if they are.

  • value: The string to compare with the attribute value.
  • notequals: The optional value returned if the attribute value does not equal the value represented by the first parameter.
  • equals: The optional value returned if the attribute value equals the value represented by the first parameter.

[attr | nowhitespace()]

Removes the white space from the string represented by the atttribute value.

[attr | percentage([integer_count])]

Returns the numeric value formatted as a percentage.

  • count: The optional number that indicates how many places to the right of the decimal are displayed.

[attr | regex(pattern[, index][, option])]

Searches the string represented by the attribute value for an occurrence of the regular expression supplied in the pattern parameter.

  • pattern: The regular expression pattern to match.
  • index: The optional numbered index of the match to return. The default is 0.
  • option: The optional comma-separated list of regular expression options. Some of the commonly used options are IgnoreCase, Multiline, Singleline, and IgnorePatternWhitespace.

[attr | regexmatch(pattern[, index][, option])]

Searches the string represented by the attribute value for an occurrence of the regular expression supplied in the pattern parameter.

  • pattern: The regular expression pattern to match.
  • index: The optional numbered index of the match to return. The default is 0.
  • option: The optional comma-separated list of regular expression options. Some of the commonly used options are IgnoreCase, Multiline, Singleline, and IgnorePatternWhitespace.

[attr | regexreplace(search, replacewith[, integer_startat])]

Replaces all occurrences of the regular expression pattern found in the attribute value with replacewith.

  • search: The regular expression to search with.
  • replacewith: The text to replace the match with.
  • startat: The optional character index at which to start replacement. Default is 0.

[attr | remove(integer_index[, integer_count])]

Deletes characters from the attribute value; begins at the zero-based index specified by the first parameter.

  • index: The position to begin deleting the characters.
  • count: The optional number of characters to delete. If not provided all characters starting from the specified index will be deleted.

[attr | replace(oldvalue, newvalue[, ishex])]

Replaces all occurrences of the first parameter in the string represented by the attribute value with the value of the second parameter.

  • oldvalue: The string to be replaced.
  • newvalue: The string to replace all occurrences of the first parameter.
  • ishex: The optional boolean value specifying whether the first parameter is a hex representation of a character to replace. Default is false.

[attr | rfind(substring[, integer_startindex])]

Returns the highest zero-based index at which the substring is found in the attribute value.

  • substring: The string to search for in the original value.
  • startindex: The optional index at which to start the search.

[attr | rjust(integer_width[, character])]

Returns the right-justified attribute value in a string of length specified by the second parameter. Padding is done using the fillchar specified by the first parameter.

  • width: The total width of the output string.
  • character: The optional character used for padding, if not specified this defaults to a space.

[attr | rsplit(delimiter, integer_index)]

Splits the string represented by the attribute value into tokens delimited with the first parameter and returns the token at the index specified by the second parameter; counts from the right.

  • delimiter: The string used as a separator for splitting the string into tokens.
  • index: The index of the token requested where the first token is at index 1.

[attr | sha1hash([converttobase64])]

Computes the SHA-1 hash of the attribute value.

  • encodetobase64: The optional boolean value that specifies whether to convert the result into a base 64 encoded string. Default is true.

[attr | substring(integer_index[, integer_length])]

Returns a substring of the attribute value; starts at the index specified by the parameter and counts to the right.

  • index: The zero-based index at which the substring starts from the right.
  • length: The optional length of characters from the start index. The substring to the end is returned if length is not specified.

[attr | split(delimiter, integer_index)]

Splits the string represented by the attribute value into tokens delimited by the first parameter and returns the token at the index specified by the second parameter; counts from the left.

  • delimiter: The string used as a separator for splitting the string into tokens.
  • index: The index of the token requested where the first token is at index 1.

[attr | sqlescape()]

Converts the attribute value to an SQL-escaped, single-line string.

  • dbtype: The database type to encode. The allowed values are SQL or SQLite. Default is SQL.

[attr | startswith(substring[, iftrue][, iffalse])]

Returns true (or iftrue) if the attribute value starts with the specified parameter, false (or iffalse) otherwise.

  • substring: The string expected at the begining.
  • iftrue: The optional value returned if the attribute value starts with the parameter value.
  • iffalse: The optional value returned if the attribute value does not start with the parameter value.

[attr | striphtml()]

Returns the string with any HTML markup removed.

[attr | substring(integer_index[, integer_length])]

Returns a substring of the attribute value; starts at the index specified by the parameter.

  • index: The zero-based index at which the substring starts.
  • length: The optional length of characters from the start index. A substring to the end of the string is returned if length is not specified.

[attr | toalpha()]

Returns only the letters in a string.

[attr | toalphanum()]

Returns only the alphanumeric characters in a string.

[attr | tolower()]

Returns the string represented by the attribute value with all characters converted to lowercase.

[attr | toupper()]

Returns the string represented by the attribute value with all characters converted to uppercase.

[attr | trim()]

Trims leading and trailing white space from an attribute.

[attr | trimend()]

Trims trailing white space from an attribute.

[attr | trimstart()]

Trims leading white space from an attribute.

[attr | truncate(integer_count)]

Truncates the attribute value to the number of characters specified by the parameter.

  • count: The number of characters in the resulting string.

[attr | wordwrap([integer_width][, break][, cut][, wrapexp])]

Wraps a string to a given number of characters.

  • width: The optional number of characters at which the string will be wrapped.
  • break: The optional break parameter to be used to break the line.
  • cut: The optional boolean value that specifies whether to wrap the string at or before the specified width. Default is false.
  • wrapexp: The optional regex expression to be used as a breakable characters. Default is space.

[attr | print([delim])]

Returns a string with all the values of the attribute concatenated using the specified delimiter.

  • delim: The optional delimiter to separate values with. Default is a comma.

[attr | xmldecode()]

Converts the attribute value to a XML decoded string.

[attr | xmlencode()]

Converts the attribute value to a XML encoded string.

XML Connector for CData Sync

Date Formatters

[attr | compare([value][, inputformat])]

Returns a signed number indicating the relative values of dates represented by the attribute value and parameter value.

  • value: The optional string representation of the date that will be compared with the attribute value. Default is now.
  • inputformat: The optional input format specifier. Default is autodetected.

[attr | date([outputformat])]

Returns the current system date and time in the format specified by the parameter if one was provided.

  • outputformat: The optional format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T long time pattern), file (Windows file time), MM/dd/yy, etc.

[attr | dateadd([interval][, integer_value][, outputformat][, inputformat])]

Returns a string value of the datetime that results from adding the specified number interval (a signed integer) to the specified date part of the date.

  • interval: The optional interval you want to add. Specify year, month, day, hour, minute, second, or millisecond.
  • value: The optional number of intervals you want to add. Can either be positive for dates in the future or negative for dates in the past.
  • outputformat: The optional output format specifier. Valid specifiers include d(short date pattern), D(long date pattern), f(long date/short time pattern), F(long date/time pattern), g(general short date/time pattern), G(general short date/long time pattern), r or R(RFC1123 pattern), s(sortable date/time pattern), t(short time pattern), T(long time pattern), file(Windows file time), MM/dd/yy, etc.
  • inputformat: The optional input format specifier. Default is autodetected.

[attr | datediff([interval][, value][, inputformat])]

Returns the difference (in units specified by the first parameter) between now and the date specified by the second parameter.

  • interval: The optional interval you want the result in. Specify day, hour, minute, second, or millisecond.
  • value: The optional string representation of the date to compare with attribute value. Default is now.
  • inputformat: The optional input format specifier. Default is autodetected.

[attr | day([inputformat])]

Returns the day component, expressed as a value between 1 and 31, of the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | dayofweek([inputformat])]

Returns the day of week for the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | dayofyear([inputformat])]

Returns the day of year expressed as a value between 1 and 366 for the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | filetimenow()]

Returns the date and time for the current system file time.

[attr | fromfiletime([outputformat])]

Converts a valid file time to a valid datetime value formatted as specified by the parameter if one was provided.

  • outputformat: The optional output format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T (long time pattern), file (Windows file time), MM/dd/yy, etc.

[attr | isleap([ifleap][, ifnotleap])]

Returns true (or ifleap) if the 4-digit year represented by the attribute value is a leap year, false (or ifnotleap) otherwise.

  • ifleap: The optional value returned if the attribute value is a leap year.
  • ifnotleap: The optional value returned if the attribute value is not a leap year.

[attr | month([inputformat])]

Returns the month component expressed as a value between 1 and 12 of the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | now([outputformat])]

Returns the current system date and time in the format specified by the parameter if one was provided.

  • outputformat: The optional format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T long time pattern), file (Windows file time), MM/dd/yy, etc.

[attr | todate([outputformat][,inputformat])]

Returns the date specified by the attribute value formatted as specified by the parameter if one was provided.

  • outputformat: The optional output format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T (long time pattern), file (Windows file time), MM/dd/yy, etc.
  • inputformat: The optional input format specifier. Default is autodetected.

[attr | tofiletime([inputformat])]

Converts a valid datetime to a valid file time value.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | tomonth()]

Returns the name of the month for the numeric value specified by the attribute value.

[attr | toutc([outputformat][, inputformat])]

Returns the date specified by the attribute value converted to UTC and formatted as specified by the outputformat parameter if one was provided.

  • outputformat: The optional format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g (general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T (long time pattern), and file (Windows file time), MM/dd/yy, etc.

[attr | utcnow([outputformat])]

Returns the current system UTC date and time.

  • outputformat: The optional format specifier. Valid specifiers include d (short date pattern), D (long date pattern), f (long date/short time pattern), F (long date/time pattern), g(general short date/time pattern), G (general short date/long time pattern), r or R (RFC1123 pattern), s (sortable date/time pattern), t (short time pattern), T (long time pattern), file (Windows file time), MM/dd/yy, etc.

[attr | weekday([inputformat])]

Returns the day of the week as an integer where Monday is 0 and Sunday is 6.

  • inputformat: The optional input format specifier. Default is autodetected.

[attr | year([inputformat])]

Returns the year component of the date represented by the attribute value.

  • inputformat: The optional input format specifier. Default is autodetected.

XML Connector for CData Sync

Math Formatters

[attr | abs()]

Returns the absolute value of the numeric attribute value.

[attr | add([value])]

Returns the sum of the numeric attribute value and the value specified by the parameter.

  • value: The optional numeric value to add to the specified attribute value. Default is 1.

[attr | and(value)]

Returns the AND of two values. The values provided on each side must be 1/0, yes/no or true/false.

  • value: The boolean value to compare by.

[attr | ceiling()]

Returns the smallest integer greater than or equal to a numeric attribute value.

[attr | div([value])]

Returns the result of dividing the numeric attribute value by the specified value of the parameter.

  • value: The optional numeric value to divide the numeric attribute value by. Default is 2.

[attr | divide([value])]

Returns the result of dividing the numeric attribute value by the specified value of the parameter.

  • value: The optional numeric value to divide the numeric attribute value by. Default is 2.

[attr | floor()]

Returns the largest integer less than or equal to the numeric attribute value.

[attr | greaterthan(value[, ifgreater][, ifnotgreater])]

Returns true (or ifgreater) if the attribute value is greater than the parameter value, false (or ifnotgreater) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifgreater: The optional value returned if the attribute value is greater than the parameter value.
  • ifnotgreater: The optional value returned if the attribute value is not greater than the parameter value.

[attr | isbetween(integer_lowvalue, integer_highvalue[, ifbetween][, ifnotbetween])]

Returns true (or ifbetween) if the attribute value is greater than or equal to the first parameter value and less than or equal to the second parameter value, false (or ifnotbetween) otherwise.

  • lowvalue: The lower bound of the range to check.
  • highvalue: The higher bound of the range to check.
  • ifbetween: The optional value returned if the attribute value is greater than or equal to the first parameter value and less than or equal to the second parameter value.
  • ifnotbetween: The optional value returned if the attribute value is less than the first parameter value or greater than the second parameter value.

[attr | isequal(value[, ifequal][, ifnotequal])]

Returns true (or ifequal) if the attribute value is equal to the parameter value, false (or ifnotequal) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifequal: The optional value returned if the attribute value is equal to the parameter value.
  • ifnotequal: The optional value returned if the attribute value is not equal to the parameter value.

[attr | isgreater(value[, ifgreater][, ifnotgreater])]

Returns true (or ifgreater) if the attribute value is greater than the parameter value, false (or ifnotgreater) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifgreater: The optional value returned if the attribute value is greater than the parameter value.
  • ifnotgreater: The optional value returned if the attribute value is not greater than the parameter value.

[attr | isless(value[, ifless][, ifnotless])]

Returns true (or ifless) if the attribute value is less than the parameter value, false (or ifnotless) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifless: The optional value returned if the attribute value is less than the parameter value.
  • ifnotless: The optional value returned if the attribute value is not less than the parameter value.

[attr | lessthan(value[, ifless][, ifnotless])]

Returns true (or ifless) if the attribute value is less than the parameter value, false (or ifnotless) otherwise.

  • value: The numeric value to compare with the attribute value.
  • ifless: The optional value returned if the attribute value is less than the parameter value.
  • ifnotless: The optional value returned if the attribute value is not less than the parameter value.

[attr | mathadd([value])]

Returns the sum of the numeric attribute value and the value specified by the parameter.

  • value: The optional numeric value to add to the specified attribute value. Default is 1.

[attr | mathmod(value)]

Returns the modulus of the numeric attribute value divided by the specified parameter value.

  • value: The number to divide the attribute value by.

[attr | mathpow([value])]

Returns the numeric attribute value raised to the power specified by the parameter value.

  • value: The optional power to raise the attribute value to. Default is 2.

[attr | mathround([integer_value])]

Returns the numeric attribute value rounded to the number of decimal places specified by the parameter.

  • value: The optional number of decimal places. Default is 2.

[attr | mathsub([value])]

Returns the difference between the numeric attribute value and the value specified by the parameter.

  • value: The optional numeric value to subtract the attribute value by.

[attr | modulus(value)]

Returns the modulus of the numeric attribute value divided by the specified parameter value.

  • value: The number to divide the attribute value by.

[attr | multiply([value])]

Returns the result of multiplying the numeric attribute value with the specified value of the parameter.

  • value: The optional numeric value to multiply the numeric attribute value by. Default is 2.

[attr | or(value)]

Returns the OR of two values. The values provided on each side must be 1/0, yes/no or true/false.

  • value: The boolean value to compare by.

[attr | pow([value])]

Returns the numeric attribute value raised to the power specified by the parameter value.

  • value: The optional power to raise the attribute value to. Default is 2.

[attr | rand([integer_value])]

Returns a random integer between 0 and the parameter value.

  • value: The optional value that limits the highest possible random integer. Default is 100.

[attr | random([integer_value])]

Returns a random integer between 0 and the parameter value.

  • value: The optional value that limits the highest possible random integer. Default is 100.

[attr | round([integer_value])]

Returns the numeric attribute value rounded to the number of decimal places specified by the parameter.

  • value: The optional number of decimal places. Default is 2.

[attr | sqrt()]

Returns the square root of the numeric attribute value.

[attr | subtract([value])]

Returns the difference between the numeric attribute value and the value specified by the parameter.

  • value: The optional numeric value to subtract the attribute value by.

XML Connector for CData Sync

Keyword Reference

API Script の構文は、"api:" を接頭辞に取るXML エレメントであるキーワードを使って定義されます。キーワードは、プログラミングもしくはスクリプト言語の一般的な機能である、条件分岐、ループ、およびフロー制御を含みます。ただし、API Script は、フィード操作や生成に特化した専用のキーワードも含みます。例えば、api:call、api:enum、およびapi:set があります。

キーワードの多くは、その動作を定義もしくは変化させるパラメータを取ります。パラメータは、キーワードエレメントのXML アトリビュートとして定義されます。このセクションでは、それぞれのキーワードについて、必須およびオプションのパラメータ、コードサンプルが記載されています。

キーワードスコープ

API Script では、キーワードでスコープを持つものがあります。つまり、他のキーワードのボディの内部にネストされるキーワードがあり、ネストされ方はAPI Script 言語において重要な意味を持ちます。

  • キーワードのスコープ内で反復の指示を定義することが可能です。例えば、api:call キーワードのボディは、api:call により起動したオペレーションにより生成されたフィード内のそれぞれのアイテムに対して実行されます。このため、api:call の内部にネストされたキーワードは、それぞれの反復において実行され、フィード内にそれぞれのアイテムを作成します。
  • スコープは、キーワードのマッチングペアと関連付けられます。例えば、api:else キーワード、api:equals、もしくはapi:check のような条件分岐キーワードのそれぞれの実行パスを定義します。API Script では、特定のapi:else キーワードは、条件ステートメントの直接の子としてネストされている場合には、条件ステートメントに関連付けられます。このため、api:else キーワードは、条件分岐キーワードによるスコープの外部に定義されなければなりません。
  • キーワードは、スコープ内で新しいアイテム(変数)を持ち込むことができます。例えば、api:call キーワードは、生成されているフィード内での反復されているアイテムを表すデフォルトアウトプットアイテムを出します。
  • キーワードは、スコープ内でより多くの情報を提供する追加アトリビュートをデフォルトアイテムに追加することができます。これらのアトリビュートは、本ドキュメントで説明される際にはコントロールアトリビュートと呼ばれます。これらは、通常、_文字から始まるため、簡単に判別できます。例えば、_attr、_index、_value などです。

XML Connector for CData Sync

api:break

api:break キーワードは、api:call、もしくはapi:enum の反復を終了するために使われます。他のAPI Script キーワードのスコープ外で使われた場合には、スクリプト全体を終了するために使うこともできます。

パラメータ

None

アトリビュートの制御

None

サンプル

api:enum から出る。次の例では、foo アイテムの最初の2つのアトリビュートをリストします:

<api:set attr="foo.attr1" value="value1"/>
<api:set attr="foo.attr2" value="value2"/>
<api:set attr="foo.attr3" value="value3"/>

<api:enum item="foo">
[_index]: [_attr] has the value [_value]. 
<api:equals attr="_index" value="2"> 
<api:break/>
</api:equals>
</api:enum>

関連項目

  • api:continue:次のアイテムに続く。
  • api:enum:アイテムの値、リスト、レンジ、もしくは複数の値を持つアトリビュートをループする。
  • api:call:オペレーションにより返されたアイテムのループ。

XML Connector for CData Sync

api:call

api:call キーワードは、オペレーションを呼び出すことに使われます。有効なオペレーションは次のとおり:

  • アプリケーションのbin サブフォルダに位置する、Sync App アセンブリとともにインストールされているビルトインオペレーション
  • .NET、またはJava で独自に書き、アプリケーションのbin サブフォルダに置かれたオペレーション

オペレーションは、アイテムをインプットに取り、フィードをアウトプットします。api:call のスコープは、呼び出しから返されたフィード内のすべてのアイテムに対し実行されます。api:call のスコープ内では、返されたアイテムのアトリビュートを調べ、変更することができます。そして、それらのアトリビュートを他のオペレーションのインプットとして提供することができます。このようにオペレーションパイプラインが形成されます。もしくは、アイテムをアウトプットに追加することもできます。

Output Item Stack およびDefault Item

api:call が起こるたびに、内部のアイテムスタックに新しいアイテムが追加されます。スタックの一番上のアイテムがデフォルトアイテムです。アイテム名が呼び出しのインプットで明示的に指定されていない場合には、このアイテムがapi:call にインプットを提供します。

呼び出されたオペレーションはアトリビュートにデフォルトアイテムを書き込み、api:push がデフォルトアイテムをアウトプットに追加します。アイテムを追加する際に、スタックの一番上のデフォルトアイテムからのアトリビュートだけが追加されます。

デフォルトアイテムは、アイテムが反復されると消され、api:call は次のアイテムに働きます。つまり、次の反復では、api:callの前の反復のvalue セットを読むことはできません。反復に渡って値を残すには、api:set を使って、名前を明示したアイテムにコピーします。

デフォルトのアイテムは_ もしくは明示的に_out1、_out2、_out[n]、(N はスタック の深さです)と示すことができます。これにより、実行処理におけるすべての有効な値を読むことができます。ルックアップ処理はデフォルトアイテムからはじまり、値が見つかるまでスタック内を読みます。

下の例では、それぞれの呼び出しでアイテムがスタックの一番上に追加されること、およびデフォルトアイテムがそれぞれの呼び出しスコープ内で変化することを確認できます。

<api:call op="operation1"> 
The default item here is _out1 
A push here would push the attributes from _out1 
The input item used to call operation2 is also _out1 
<api:call op="operation2"> 
The default item here is _out2 
A push here will push the attributes from _out2 
If there was another api:call here the input item used would be _out2 
_out2 is swept clean here for the next iteration 
</api:call> 
The default item here is again _out1 
A push here would again push the attributes from _out1 
The input item at this level is again _out1 
_out1 is swept clean here for the next iteration 
</api:call> 

オペレーションにインプットを指定する

インプットを呼び出しに提供する3つの方法があります:

  • デフォルトアイテム:インプットアイテムが指定されない場合には、呼び出されたオペレーションはデフォルトアイテムのインプット値を読みます。呼び出された処理で使われるように、デフォルトアイテムの値の設定にはapi:set キーワードを使うことができます。
    <api:set attr="mask" value="*.txt"/>
    <api:set attr="path" value="C:\\"/>
    <api:call op="fileListDir">
    ... 
    </api:call>
  • 明示的なインプットアイテム:デフォルトアイテムを使う代わりに、オペレーションのインプットアイテムとして使いたいアイテムを明示的にパラメータ内で指定することができます。そうすると、デフォルトアイテムは使われず、次のように、指定されたインプットアイテムからインプット値が読まれ、オペレーションにクエリ文字列が渡されます。
    <api:set attr="mask" value="*.* -- Will be ignored --"/>
    <api:set attr="myinput.mask" value="*.txt"/>
    <api:set attr="myinput.path" value="C:\\"/>
    <api:call op="fileListDir" in="myinput">
    ... 
    </api:call>
  • クエリ文字列パラメータ:クエリ文字列表記を使って、オペレーションのインプットを特定することができます。クエリ文字列の一部として指定されたアトリビュートが優先されます。つまり、クエリ文字列で指定されたアトリビュートとインプットアイテムで指定されたアトリビュート名に差異がある場合、クエリ文字列のほうが優先されます。ただし、インプットアイテムの他のアトリビュートは、引き続きアクセス可能です。次の例では、クエリ文字列においてインプットを指定するシンタックスが説明されています:
    <api:set attr="myinput.mask" value="*.txt -- will be overridden --"/> 
    <api:set attr="myinput.path" value="C:\\"/> 
    <api:call op="fileListDir?mask=*.rsb" in="myinput">
    ...
    </api:call>

パラメータ

  • op:呼び出されるオペレーションの名前。
  • in[put]:オペレーションを起こす際にインプットとして使われるアイテムのリスト。指定されたインプットアイテムの中でアトリビュートは左から右へルックアップされます。
  • out[put]:アウトプットアトリビュートが位置するアイテム。api:call のスコープで、指定されたアイテム名を使って、現在のアウトプットアイテムを取得することができます。_out[n]、または _pipe を使って、呼び出し結果を参照することができます。

    Note:呼び出しのスコープ外では、呼び出し内のアトリビュートセットは使用できません。これは、呼び出しのそれぞれの反復は、前の反復のアトリビュートを削除するためで、呼び出しの最後にはなにも残りません。呼び出しのスコープ外のアトリビュートにアクセスするためには、api:set を使って呼び出しの外で使いたいアイテムにアトリビュートを明示的にコピーします。

  • item:インプットとアウトプット双方で使われるアイテムの名前。
  • sep[arator]:マルチインプットアイテムを区切るためのセパレータ。デフォルトはカンマです。
  • ignoreprefix:見つけられたときに無視される接頭辞のカンマ区切りのリスト。いくつかのオペレーションでは、"prefix:name" (例えば、api:operation and sql:company)のような名前のアトリビュートを返します。いくつかのシチュエーションでは、prefix:name および name を同じアトリビュートとして扱います。
  • page およびpagesize:反復されるアイテムのサブセット。オペレーション、もしくはフィード結果のページングを有効化するために使われます。例えば、page-"2"、およびpagesize="5" を指定した場合に、api:call キーワードは結果フィードの6から10 のみを反復します。

アトリビュートの制御

  • _index:api:call によって現在反復されているアイテムのインデックス。
  • _op:呼び出されているオペレーションの名前。実行までオペレーション名が知られていない場合に役立ちます。
  • _separator:マルチインプットアイテムを区切るための区切り。

サンプル

デフォルトアイテムをインプットとしてオペレーションを呼び出します:

<api:set attr="path" value="C:\myfiles"/>
<api:call op="fileListDir">
  <api:push/>
</api:call>

関連項目

  • api:first:反復の一番はじめだけに実行されるエレメントを書く。
  • api:catch:呼び出し内でエラーをキャッチする。
  • api:continue:次の反復に続く。

XML Connector for CData Sync

api:case

api:case キーワードは、api:select とともに使われます。api:case キーワードは、api:select の値がapi:caseに合致する場合に実行されるAPI Script のブロックからなります。

パラメータ

  • value:api:select で指定された値に対して比較するパターン、もしくは値。
  • match:Case 構文が実行されるかどうかを決定するマッチタイプ。デフォルト値は"exact" で、値のexact match を必要とします。他のサポートされるタイプは、正規表現マッチングの"regex"、ファイル名パターン(e.g., *.txt)に使われるのと類似したシンプルなexpression モデルをサポートする"glob"。Sync App の.NET 版は、.NET Framework 版の正規表現マッチングを使います。Java 版は、Java 正規表現構造を使います。

アトリビュートの制御

None

サンプル

条件によりアイコンを表示する。api:case エレメントは、company_name アトリビュートの"CompanyA"および"CompanyB" に合致します。そしてケースに関連するアクションがとられます。

<api:select value="[company_name]">
  <api:case value="CompanyA">
    <img src="http://www.companya.com/favicon.ico" />
  </api:case>
  <api:case value="CompanyB">
    <img src="http://www.companyb.com/favicon.ico" />
  </api:case>
  <api:default>
    <img src="http://www.myhosting.com/generic.ico"/>
  </api:default>
</api:select>

関連項目

  • api:select:マルチセレクトAPI Script ブロックを書く。
  • api:default:api:select のデフォルトケースを書く。

XML Connector for CData Sync

api:catch

api:catch キーワードは、スクリプト内で例外処理ブロックを作成するために使われます。api:try に加え、次のキーワード内でapi:catch ブロックを有することができます。スコープは黙示的api:try セクションとして機能します:

  • api:call
  • api:script

パラメータ

  • code:コードパラメータは、選択的に例外をキャッチすることを許容します。すべての例外をキャッチする場合には * 記号を使います。

アトリビュートの制御

  • _code:キャッチされた例外のコード。
  • _desc:キャッチされた例外の短い説明。
  • _details:例外のより詳細な説明。

サンプル

例外をスローしキャッチする。 api:call の中で、APIException が投げられ、キャッチされます。キーワードのスコープ内で、rsb エンコードおよびrsb メッセージアトリビュートが、現在のアイテムに足され、はき出されます。

<api:call op="...">
  <api:throw code="myerror" description="thedescription" details="Other Details."/>
  <api:catch code="myerror">
    <api:set attr="api:ecode" value="[_code]"/>
    <api:set attr="api:emessage" value="[_description]: [_details]"/>
    <api:push/>
  </api:catch>
</api:call>
すべての例外をキャッチする:
<api:catch code="*">
  An exception occurred. Code: [_code], Message: [_desc]
</api:catch>

関連項目

  • api:try:例外をキャッチするスコープの定義。
  • api:throw:例外の強制。

XML Connector for CData Sync

api:check

api:check キーワードは、他の値のパラメータと同時もしくは別に使うことができます。パラメータ値が無しの場合は、api:check のボディが実行される前に、アトリビュートがアイテムの中に存在し、null 文字列ではないことを確認します。

パラメータ値が指定されている場合は、api:check ボディはエクスプレッションがtrue と評価された場合のみ実行します。他の値はfalse となります。評価は大文字・小文字の区別が必要です。

他のAPI Script のシンプルな条件文と同様に、これはapi:else キーワードとペアで使うことができます。api:equals とは異なり、api:check はアイテムにアトリビュートが存在しない場合でも例外をスローしないことに注意してください。

パラメータ

  • item:アトリビュートをチェックするアイテム。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアウトプットが代わりに使われます。
  • attr:チェックするアトリビュートの名前。このパラメータは必須です。
  • value:True もしくはfalse を判断されるエクスプレッション。例えば、true もしくはfalse を返すフォーマッターの結果。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

アトリビュートが設定されているかどうかを、使用する前にチェックしてください。
<api:check attr="_input.In_Stock">
...
</api:check>

関連項目

  • api:exists:アトリビュートが存在するかをチェック。
  • api:equals:同じ値かどうかのチェック。
  • api:notequals:同じ値ではないかのチェック。

XML Connector for CData Sync

api:continue

api:continue キーワードは、api:call、もしくはapi:enum の次の反復に移る際に使われます。

パラメータ

None

アトリビュートの制御

None

サンプル

ディレクトリ内のファイルのみをリストするフィードの作成。api:continue キーワードは、ディレクトリを表すアイテムをスキップするために使われます。

<api:call op="fileListDir">
  <api:equals attr="file:isdir" value="true">
    <api:continue/>
  </api:equals>
  <api:push/>
</api:call>

Single-value アトリビュートの値をリストする。api:continue を使って、multivalue のアトリビュートをスキップすることができます。

<api:set attr="foo.multiattr#" value="value1"/>
<api:set attr="foo.multiattr#" value="value2"/>
<api:set attr="foo.attr2"      value="value3"/>
<api:enum item="foo">
  <api:notequals attr="_count" value="1">
    <api:continue/>
  </api:notequals>
  [_index]: [_attr] has the value [_value] <!-- only evaluated for attr2 -->
</api:enum>

関連項目

  • api:break:api:call、もしくはapi:enum の反復から出る。
  • api:enum:アイテム、アトリビュート、リスト、もしくはレンジの値を反復する。
  • api:call:スクリプト、オペレーション、もしくはフィードを呼び出す。

XML Connector for CData Sync

api:default

api:default キーワードは、api:select キーワードとともに使われます。api:default キーワードは、api:select の値がapi:caseのどの値にも合致しない場合に実行されるAPI Script のブロックからなります。

パラメータ

None

アトリビュートの制御

None

サンプル

条件によりアイコンを表示する。api:case エレメントは、company_name アトリビュートの"CompanyA"および"CompanyB"に合致します。そしてケースに関連するアクションがとられます。
<api:select value="[company_name]">
  <api:case value="CompanyA">
    <img src="http://www.companya.com/favicon.ico" />
  </api:case>
  <api:case value="CompanyB">
    <img src="http://www.companyb.com/favicon.ico" />
  </api:case>
  <api:default>
    <img src="http://www.myhosting.com/generic.ico"/>
  </api:default>
</api:select>

<p>

関連項目

  • api:select:マルチセレクトAPI Script ブロックを書く。

XML Connector for CData Sync

api:else

api:else キーワードは、api:exists もしくはapi:match などのテストが失敗した場合に、代替のコードブロックを実行するために使われます。これは、呼び出しがアウトプットアイテムを生成することに失敗した場合に、api:call 内の代替コードブロックを実行するためにも使われます。

他の言語とは異なり、API Script はそれが 属するテストスコープの内部にapi:else 構文を必要とします。

パラメータ

None

アトリビュートの制御

None

サンプル

ファイルに名前がない場合には、プレースホルダータイトルを返します:
<api:call op="fileListDir" out="out">
  <api:null attr="filename">
    <api:set attr="title" value="Unnamed File"/>
    <api:else>
      <api:set attr="title" value="[filename]"/>
    </api:else>
  </api:null>
  <api:push title="[title]">
  [out.*]
  </api:push>
</api:call> 

関連項目

  • api:exists:アトリビュートが存在するかをチェック。
  • api:equals:同じ値かどうかのチェック。

XML Connector for CData Sync

api:enum

api:enum キーワードは、アイテム内のアトリビュート、制限のないリスト、与えられた値の範囲、および複数の値を持つアトリビュートの値を列挙することに使われます。api:enum のボディは、反復されるセットのエレメントごとに実行されます。

パラメータ

  • item:反復するアトリビュートのアイテム名。
  • attr:どのアトリビュートが反復されるかを指定する、マッチするエクスプレッション。例、"rsb.:*"。複数の値を持つアトリビュートの値を反復するパラメータを提供することもできます。
  • prefix:その上にアイテムが列挙される接頭辞。
  • expand:複数の値を持つアトリビュートが検出された場合に、どのようにapi:enum が挙動するかを指定するboolean 値。Expand がtrue に設定されている場合、api:enum のボディはアトリビュートのそれぞれの値につき一度づつ実行されます。False の場合、すべての値は、1つの文字列値として結合され、一度の反復のみが実行されます。デフォルトで、api:enum はすべての値をexpand しません。
  • sep[arator]:セパレータは、expand パラメータがfalse の場合、複数の値を持つアトリビュートの値を結合させるために使われます。追加で、セパレータはlistseparator が定義されていないリストの値をトークンとすることに使われます。デフォルト値は、new-line charactor "\n" です。
  • list:列挙される区切られた値のリスト。例えば、値のリストが"violet, indigo, blue, green, yellow, orange, red" で、セパレータが',' の場合、api:enum のスコープは虹のそれぞれの色ごとに実行されます。
  • range:昇順、降順で列挙される数字もしくは文字のレンジは、例えば、"a..z"、"Z..A" です。
  • recurse:ネストされたアトリビュートを列挙されるかどうか。デフォルトはtrue です。
Note:アトリビュートのレンジ、もしくはアイテムアトリビュートを指定できますが、両方同時にはできません。さらに、アトリビュートは、アルファベット順で列挙されます。

アトリビュートの制御

  • _attr:反復されるアトリビュートの名前。複数の値を持つアトリビュートの値を反復している場合、アトリビュート名は、名前の一部としてindex を持つ以外はアトリビュート名は同じです。Index は、ハッシュ記号(#)で名前と区別されます。例えば、name#1、name#2、etc.
  • _index:アイテム内でアトリビュートが出現するindex、もしくはリストエレメントが現在列挙されている位置。
  • _value:反復されるアトリビュートの値。複数の値を持つアトリビュートでは、expand およびセパレータパラメータ設定は、_value が1つのアトリビュート値の参照なのか、すべてのアトリビュート値の参照なのかを決定します。
  • _count:アトリビュート内またはリスト内の値の数。
  • _separator:リスト内の値を区切るセパレータ。

サンプル

アトリビュート名、および"input" と名付けられたアイテムのアトリビュート値を表示:

<api:set item="input" attr="Greeting" value="Hello" />
<api:set item="input" attr="Goodbye" value="See ya" />
<api:enum item="input">
  [_attr] is [_value]
  <br/>
</api:enum> 

goodbye is See ya greeting is Hello
値のリストを列挙するには、api:enum のリストおよびセパレータパラメータを使います。例えば、次のコードはcolors アットリビュートで指定された色をリストします。
<api:set attr="colors" value="violet, indigo, blue, green, yellow, orange, red"/>
<api:enum list="[colors]" separator=",">
  [_value] 
</api:enum>
値のレンジを列挙するには、レンジアトリビュートを使います。例えば、次のコードはa からz の文字セット、および1 から25 の数字をリストします:
<api:enum range="a..z">
  [_value] 
</api:enum>
<api:enum range="Z..A">
  [_value] 
</api:enum>
<api:enum range="1..25">
  [_value] 
</api:enum>
複数の値を持つアトリビュートの値すべてを列挙するには、複数の値を持つアトリビュートを指定するためにattr アーギュメントを使い、expand をtrue に設定します。
<api:set attr="foo.email#1" value="[email protected]"/>
<api:set attr="foo.email#2" value="[email protected]"/>
<api:enum attr="foo.email" expand="true">
    ([_index]) [_attr] -> [_value]
</api:enum>
上記の例は次のアウトプットになります:
(1) email#1 -> [email protected] (2) email#2 -> [email protected]

関連項目

  • api:break:api:call、もしくはapi:enum の反復から出る。
  • api:continue:api:call もしくは、api:enum の反復をスキップする。
  • api:first:初めの反復で特別な処理を行う。
  • api:last:最後の反復で特別な処理を行う。

XML Connector for CData Sync

api:equals

api:equals キーワードは、あるアトリビュートの値と参照値を比較します。api:check とは異なり、api:equals キーワードは指定されたアイテムが指定されたアトリビュートを含まない場合、例外をスローします。指定されたアトリビュートが存在し、その値がマッチする場合、比較が行われます。

Note:api:equals およびapi:check はどちらも与えられた値と比較される値を持つアトリビュート名を求めます。もし2つの値を比較する場合には、代わりにapi:selectを使うことができます。次に例を示します。

<api:select value="[company_name]">
  <api:case value="CompanyA">
    <img src="http://www.companya.com/favicon.ico" />
  </api:case>
  <api:case value="CompanyB">
    <img src="http://www.companyb.com/favicon.ico" />
  </api:case>
  <api:default>
    <img src="http://www.myhosting.com/generic.ico"/>
  </api:default>
</api:select>

パラメータ

  • item:アトリビュートを比較するアイテム。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアウトプットが代わりに使われます。
  • attr:比較するアトリビュートの名前。
  • case:比較で大文字-小文字を区別するかどうか。デフォルトは大文字-小文字を区別します。大文字-小文字を区別しない場合には、case パラメータを"ignore" に設定します。
  • value:アトリビュートを比較する値。
  • action:同じ値の場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

他の条件キーワードと同様に、api:equals のボディは、api:else キーワードを含むことがあり、値がマッチしない場合に実行されます。以下は、Err ファイルを除くすべてのファイルをリストします:

<api:call op="fileListDir">
  <api:equals attr="file:extension" value=".err">
  <api:else>
    <api:push/>
  </api:else>
  </api:equals>
</api:call>

関連項目

  • api:select:2つ以上の選択肢から選択。
  • api:notequals:同じ値ではない場合に実行されるブロックの作成。

XML Connector for CData Sync

api:exists

api:exists キーワードは、指定されたアイテムにおいてアトリビュートが値を持っているかをチェックします。api:notnull キーワードは、api:exists の類義語です。

パラメータ

  • item:チェックするアイテム。指定されない場合には、デフォルトアウトプットアイテムが使われます。
  • attr:チェックするアトリビュートの名前。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

ファイルのフィードの欠けているタイトルアトリビュートの定義:
<api:call op="fileListDir" output="out">
  <api:exists attr="filename">
    <api:set attr="title" value="[filename]"/>
    <api:else>
      <api:set attr="title" value="Unnamed File"/>
    </api:else>
  </api:exists>
  <api:push title="[title]">
  [out.file:*] 
  </api:push>
</api:call> 

関連項目

  • api:else:条件が充足されない場合に実行されるブロックの作成。

XML Connector for CData Sync

api:first

api:first キーワードは、api:call、もしくはapi:enum キーワードの反復のはじめだけ、スクリプトの一部を使うために使われます。これは、ヘッディングを生成したり、残りのフィードに行く前にフィードのはじめのアイテムを調べたりするのに便利な方法です。

反復のはじめに、api:first ボディは、api:firstがapi:call、もしくはapi:enum ボディ内のどこに位置しているかにかかわらず、api:call、もしくはapi:enum 内の他のコードより前に、実行されます。強いて言えば、api:first は、api:call、もしくはapi:enum ボディの最初に置くことを推奨します。

スコープにアイテムがない場合、api:first、およびapi:last はどちらも実行されません。

パラメータ

None

アトリビュートの制御

None

サンプル

それぞれのアイテムが行として表示されているHTML テーブルを作成する:

<api:call op="listCustomers">
  <api:first>
    <table>
    <thead>
      <api:enum item="customer">
        <td>[_attr]</td>
      </api:enum>
    </thead>
  </api:first>
    <tr>
      <api:enum item="customer">
        <td>[_value]</td>
      </api:enum>
    </tr>
  <api:last>
    </table>
  </api:last>
</api:call>

関連項目

  • api:last:反復の最後のみコードブロックを実行する。

XML Connector for CData Sync

api:finally

api:finally キーワードは、コントロールがapi:call、api:try、、またはapi:script 構文を離れた後にスクリプトのセクションを実行するのに使われます。これは、生成されたドキュメントのフォーマットをきれいにするのに便利です。

パラメータ

None

アトリビュートの制御

None

サンプル

api:finally ブロックは、ハンドルされていない例外が発生された場合に実行されます。これによりタグが閉じていることが確認できます:

<table>
<api:call op="listCustomers" out="customer">
  <api:first>
    <thead>
        <api:enum item="customer">
          <td>[_attr]</td>
        </api:enum>
    </thead>
  </api:first>
  <tr>
      <api:enum item="customer">
        <td>[_value]</td>
      </api:enum>
  </tr>
  <api:finally>
  </table> <!-- ensure tags are still closed -->
  </api:finally>
</api:call>

関連項目

  • api:try:例外をキャッチするスコープの定義。
  • api:call:処理により返されたアイテムのループ。
  • api:script:スクリプトブロックの作成。

XML Connector for CData Sync

api:if

api:if キーワードを、アイテム、アトリビュート、値を含むエクスプレッションを評価するために使うことができます。キーワードのスコープは、特定のエクスプレッションがtrue と評価された場合に実行されます。

パラメータ

  • exp:評価するエクスプレッション。文字列、日付、および数値の比較をすることができます。
  • attr:値を比較するアトリビュートの名前。アトリビュートの値は、マッチする値、もしくはnull やnotnull 値に対しチェックすることができます。
  • value:attr で指定されたアトリビュートの値と比較する値。
  • item:比較されるアトリビュートを含むアイテム。
  • operator:attr と値により指定されたoperands と比較するオペレータの名前。有効な値は、null、notnull、hasvalue、equals、equalsignorecase、lessthan、とgreaterthan です。デフォルト: notnull。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

二つの値のシンプルな比較を評価。

<api:if exp="[attr] == 10">
与えられた値と、与えられたアトリビュートの値が同じ値かどうかを評価:
<api:set attr="attr1" value="value1"/>
<api:set attr="attr2" value="value2"/>
<api:if attr="attr1" value="[attr2]" operator="notequals"> <!-- Evaluates to true -->
<api:else>
False
</api:else>
True
</api:if>
アトリビュートが存在する場合にはチェック:
<api:set attr="exists" value="true"/>
<api:if attr="exists"> <!-- Evaluates to true -->
[exists]
</api:if>

関連項目

  • api:exists:アトリビュートが指定されたアイテムに値を持っているかどうかをチェック。
  • api:equals:同じ値である場合に実行されるブロックの作成。

XML Connector for CData Sync

api:include

api:include キーワードは、他のファイルからのAPI Script を含むことに使われます。他のプログラミング言語においてtraditional が含まれているように、api:include はファイルパラメータで指定されるファイルの内容にリプレースされます。

パラメータ

  • file | document:ファイル名が含まれるようになります。

アトリビュートの制御

None

サンプル

重複なしにそれぞれのスクリプトのアトリビュート(会社名、著作権)をインポートする:

<api:include file="globals.rsb"/> 
[companyname] 
[copyright] 
<api:call ...>

XML Connector for CData Sync

api:info

api:info キーワードは、スクリプトのメタデータを説明するために使われます。この情報は、Sync App でユーザーインプットベーシックなエラーチェックおよびデフォルト値の設定に使われます。api:info キーワードには、次のような情報が含まれます。

  • カラム定義
  • スクリプトが受け入れるインプットパラメータ
  • スクリプトが生成するアウトプット

Table パラメータ

次のパラメータはtable 自体を定義します:

  • desc[ription]:tableの説明。もし説明がない場合には、スクリプトの名前が使われます。
  • title:スクリプトのタイトル。もしタイトルがない場合には、スクリプトの名前が使われます。
  • methods:スクリプトに対して実行できるHTTP メソッド。SELECT、INSERT、UPDATE、およびDELETE はHTTP GET、POST、PUT/PATCH/MERGE、およびDELETE にそれぞれ対応します。
  • url:スクリプトauther のURL。
  • keywords:スクリプトを説明するキーワード。

インプット、アウトプット、およびカラム パラメータ

api:info キーワードは、スクリプトインプット、およびアウトプットに加えて、カラムを定義するスコープに含まれる追加パラメータを持ちます。これらのパラメータはAPI Script キーワードではなく、api:info の追加情報であることに注意してください。

attr

attr パラメータは、table カラムを説明し、最低でもname およびdata type の二つのアトリビュートを含みます。name はアルファベット文字列でなければなりません。

他のオプションアトリビュートは、カラムについてより多くの情報を提供し、Sync App がさまざまなツールにおいてこれらのカラムを正しく表示することを実現します。

<attr 
  name="Name"
  xs:type="string"
  other:xPath="name/full"
  readonly="true"    
  columnsize="100"
  desc="The name of the person." 
/> 

  • name:カラムの名前を定義するアルファベット文字列。
  • xs:type:カラムのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
  • other:'other:' で始まるアトリビュートで追加の情報を提供します。これらの other プロパティは、処理に固有とすることができます。例えば、other:xPath はXPath をローカル、もしくはリモートリソースのノードに指定します。XPath はRepeatElement に相対的とすることができます。
  • desc[ription]:カラムの短い説明。
  • key:カラムがtable の主キーの一部であるかどうか。
  • readonly:カラムが更新できるかどうか。'TRUE またはFALSE' が使用可能です。
  • req[uired]:挿入において、カラムが指定される必要があるかどうか。'TRUE またはFALSE' が使用可能です。
  • def[ault]:指定がない場合のカラムのデフォルト値。
  • values:カンマ区切りのカラムの有効な値。指定されている場合、指定されたカラム値が許容された値のどれかと合致しない場合には、エンジンはエラーを出します。
  • reference[s]:別のtable の主キーの外部キー。外部キーは、次のシンタックスで指定できます。 table.key.例:"Employees.EmployeeId".
  • columnsize:文字列の最大文字数、もしくは数値カラムの桁精度。数値カラムの桁制度とは、桁数です。
  • scale | decimaldigits:小数点以下のスケール。小数点以下のスケールとは、小数点の右側の桁数です。
  • isnullable:カラムがnull 値を受け入れるかどうか。これは、null 値を送受信することを阻害することではありません。

input

インプットパラメータは、スクリプトへのインプットを説明するために使われます。

インプットエレメントは、tables、およびstored procedures の双方のスキーマに使うことができます。

パラメータのアトリビュートは、ユーザーに対してインプットの追加情報を提供し、エンジンが基礎チェックを行うことを許可します。

stored procedure スキーマでは、一つもしくは複数のエレメントがstored procedure のインプットを説明するために使われます。table スキーマでは、インプットエレメントは、WHERE 句でのみ使うことできる、疑似カラムを定義します。

XML データソースでは、疑似カラムはXPath を含むことができません。

<input
  name="name"
  desc="Example of an input parameter"
  default="defValue"
  req="true"
  values="value1, value2, value3"
  xs:type="string" 
/>
  • name:インプット名。英数字で、以下を追加で含むことができる:"#" はインプットが複数の値を持つことができることを意味し、"myprefix:*" は同一の接頭辞や値を含むインプットのセットを意味し、"*" は、任意のインプットパラメータを意味します。
  • desc[ription]:インプットの短い説明。
  • xs:type:インプットのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
  • def[ault]:スクリプトコールでインプット値が提供されていない場合に使われるデフォルト値。
  • key:インプットが主キーかどうか。
  • req[uired]:インプットが必要かどうか。要求されたインプットが提供されず、デフォルト値が定義されていない場合にはエンジンはエラーを出します。'TRUE またはFALSE' が使用可能です。
  • values:カンマ区切りのインプットの有効な値。指定されている場合、指定されたインプットが許容された値のどれかと合致しない場合には、エンジンはエラーを出します。
  • alias:インプットのエイリアス。
  • other:'other:' で始まるアトリビュートで追加の情報を提供します。これらの other プロパティは、処理に固有とすることができます。

output

オペレーションのアウトプットを説明するアウトプットパラメータ。ただし、これらはSync App には無視されます。よって、オペレーションのアウトプットは、情報ブロックでの定義から独立しています。

<output  name="Id" 
         desc="The unique identifier of the record."
         xs:type="string"
         other:xPath="content/properties/Id" 
/>
  • name:アウトプットの名前で、"myprefix:*" はどいういつの接頭辞や値を含むインプットのセットを意味し、"*" は、任意のアウトプットパラメータを意味します。
  • xs:type:アウトプットのデータ型。String、int、double、datetime、およびboolean 型がサポートされています。
  • desc[ription]:アウトプットの短い説明。
  • columnsize:文字列の最大文字数、もしくは数値アウトプットの桁精度。カラムの桁制度とは、桁数です。
  • other:'other:' で始まるアトリビュートでアウトプットについて追加の情報を提供します。例えば、other:xPath はXPath をローカル、もしくはリモートリソースのノードに指定します。XPath はRepeatElement に相対的とすることができます。

サンプル

異なるデータ型のカラムを含む一般的なテーブルのメタデータについて説明します:
<api:info title="NorthwindOData" desc="Parse an XML document (NorthwindOdata.xml) into rows.">
  <attr name="ID"           xs:type="int" key="true" other:xPath="content/properties/ID" />
  <attr name="EmployeeID"   xs:type="int"            other:xPath="content/properties/EmployeeID" />
  <attr name="Name"         xs:type="string"         other:xPath="content/properties/Name" />
  <attr name="TotalExpense" xs:type="double"         other:xPath="content/properties/TotalExpense" />
  <attr name="HireDate"     xs:type="datetime"       other:xPath="content/properties/HireDate" />
  <attr name="Salary"       xs:type="int"            other:xPath="content/properties/Salary" />
</api:info> 

以下は、Bing 検索API を使ったウェブ検索のストアドプロシージャのメタデータを説明します:

<api:info title="SearchWeb"    desc="Use Bing to search the Web."> 
  <output name="Id"          xs:type="string"    other:xPath="content/properties/ID"          />
  <output name="URL"         xs:type="string"    other:xPath="content/properties/Url"         />
  <output name="Title"       xs:type="string"    other:xPath="content/properties/Title"       />
  <output name="Description" xs:type="string"    other:xPath="content/properties/Description" />
  <output name="DisplayURL"  xs:type="datetime"  other:xPath="content/properties/DisplayUrl"  />

  <input name="SearchTerms"    />
</api:info>

関連項目

  • api:script:スクリプトブロックの作成。
  • api:call:スクリプトおよびオペレーションの呼び出し。
  • api:set:アイテムでアトリビュートを設定。

XML Connector for CData Sync

api:last

api:last キーワードのスコープ内のAPI Script キーワードは、最後のアイテムの出現後のみ、かつアイテムがapi:call、もしくはapi:enum で返された場合のみ、実行されます。

api:last 構文は、最後のアイテムが処理された後に実行されます。これはフィードの最後のアイテムとのアクセスを保持します。スコープにアイテムがない場合、api:first、およびapi:last はどちらも実行されません。

パラメータ

None

アトリビュートの制御

None

サンプル

それぞれのアイテムが行として表示されているHTML テーブルを作成する:

<api:call op="listCustomers">
  <api:first>
    <table>
    <thead>
      <api:enum item="customer">
        <td>[_attr]</td>
      </api:enum>
    </thead>
  </api:first>
  <tr>
    <api:enum item="customer">
      <td>[_value]</td>
    </api:enum>
  </tr>
  <api:last>
    </table>
  </api:last>
</api:call>

関連項目

  • api:first:反復の最初のみコードブロックを実行する。

XML Connector for CData Sync

api:map

api:map キーワードは、あるアイテムのアトリビュートを別のアイテムのアトリビュートにマップするために使われます。アトリビュートは、あるアイテムから参照され、マップ文字列で指定された新しい名前で別のアイテムに書かれます。api:map キーワードは、destination アイテムを削除しません:これは、単に新しいアトリビュートを追加するだけです。もしくは、destination アイテムにアトリビュートが存在する場合には、それは上書きされ、他のアトリビュートはそのまま残ります。

パラメータ

  • to:アトリビュートが書き込まれるアイテムの名前。
  • from:アトリビュートが読まれるアイテムの名前。
  • map:destination アイテムの中でアトリビュート名を指定するアトリビュート名のリスト、そしてソースアイテムのアトリビュート名。例えば、次のシンタックスを使って、ある接頭辞のアトリビュートを別の接頭辞にマップすることができます。
    customer:* = soap:*
    有効なアトリビュート名ではない文字は無視され、名前の終わりの境界を示します。

アトリビュートの制御

  • このキーワードはコントロールアトリビュートを持ちません。

サンプル

3個のアトリビュートをマップ:マップは、"to" アトリビュート名と、それに続く"from" アトリビュート名です。

<api:set item="item1" attr="var1" value="x"/>
<api:set item="item1" attr="var2" value="y"/>
<api:set item="item2" attr="attr1" value="z"/>
<api:map to="item2" from="item1" map="attr1=var1, attr2=var2"/>
このサンプルでは、item1 のvar1 およびvar2 アトリビュートは、item2 のattr1 、attr2、アトリビュートにそれぞれマップされます。item2 でvalue z に設定されているattr1 アトリビュートは、item1 のvar1 の値x に上書きされます。item2 に存在しないattr2 アトリビュートは、新たに作成され、item1 のvar2 の値y に設定されます。

ある接頭辞のアイテムからの複数のアトリビュートを別の接頭辞のアイテムにマップすることができます。Sync App 接頭辞(例えば soap:*)からビジネスドメインの接頭辞(例えば customer:*)に接頭辞を変更する際に便利です。次の例は、soapout アイテムのすべてのsoap:* アトリビュートからcustomer アイテムのcustomer:* 接頭辞を持つアトリビュートへのマッピングを作成します。

<api:map from="soapout" to="customer" map="customer:* = soap:*"/>
すべてのアイテムから別のアイテムにすべてのアトリビュートをコピーする:
<api:map from="copyfrom" to="copyto" map="* = *"/>

関連項目

  • api:set:アイテムのアトリビュートを設定する。

XML Connector for CData Sync

api:match

api:match キーワードは、api:equals キーワードと類似します。ただし、これは複雑なマッチング規則を許容します。

パラメータ

  • pattern:マッチするパターン。
  • type:発見するマッチのタイプ。デフォルト値は"exact" で、値のexact match を必要とします。api:match がapi:equals と全く同一の場合。他のサポートされるタイプは、正規表現マッチングの"regex"、ファイル名パターン(e.g., *.txt)に使われるのと類似したシンプルなexpression モデルをサポートする"glob"。

    Sync App の.NET 版は、.NET Framework 版の正規表現マッチングを使います。Java 版は、Java 正規表現構造を使います。

  • value:マッチする値。

アトリビュートの制御

None

サンプル

正規表現パターンを使って浮動小数点数をチェック。パターンがマッチすれば、アイテムが追加されます。

<api:match pattern="\[-+\]?\[0-9\]*\.?\[0-9\]*" type="regex" value="-3.14">
  <api:push/>
</api:match>

関連項目

  • api:select:複数の値の比較。

XML Connector for CData Sync

api:notequals

api:notequals キーワードは、アトリビュートが特定の値にマッチしないことを確認します。これは、api:equals キーワードと類似した動きをします。

パラメータ

  • item:アトリビュートを比較するアイテム。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアウトプットが代わりに使われます。
  • attr:比較するアトリビュートの名前。
  • value:アトリビュートを比較する参照値。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

Err ファイルを除くすべてのファイルをリスト:
<api:call op="fileListDir">
  <api:notequals attr="file:extension" value=".err">
    <api:push/>
  </api:notequals>
</api:call>

関連項目

  • api:equals:同じ値であるかのチェック。
  • api:else:条件が充足されない場合に実行されるブロックの作成。

XML Connector for CData Sync

api:null

api:null キーワードは、アトリビュートが指定されたアイテム内に存在しないことをチェックします。

パラメータ

  • item:チェックするアイテム。指定されない場合には、デフォルトアウトプットアイテムが使われます。
  • attr:チェックするアトリビュートの名前。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

欠けているタイトルアトリビュートの定義。
<api:call op="fileListDir" output="out">
  <api:null attr="filename">
    <api:set attr="title" value="Unnamed File"/>
    <api:else>
      <api:set attr="title" value="[filename]"/>
    </api:else>
  </api:null>
  <api:push title="[title]">
  [out.file:*] 
  </api:push>
</api:call>

関連項目

  • api:else:条件が充足されない場合に実行されるブロックの作成。

XML Connector for CData Sync

api:notnull

api:notnull キーワードは、アトリビュートが指定されたアイテムに値を持っているかどうかをチェックします。api:exists キーワードは、api:notnull の類義語です。

パラメータ

  • item:チェックするアイテム。指定されない場合には、デフォルトアウトプットアイテムが使われます。
  • attr:チェックするアトリビュートの名前。
  • action:エクスプレッションがtrue と判断された場合に実行されるアクション。使用できる値は、break、continue です。

アトリビュートの制御

None

サンプル

欠けているタイトルアトリビュートの定義。
<api:call op="fileListDir" output="out">
  <api:notnull attr="filename">
      <api:set attr="[title]" value="[filename]"/>
    <api:else>
      <api:set attr="[title]" value="Unnamed file"/>
    </api:else>
  </api:notnull> 
  <api:push title="[title]">
  [out.file:*]
  </api:push>
</api:call>

関連項目

  • api:else:条件が充足されない場合に実行されるブロックの作成。

XML Connector for CData Sync

api:push

api:push キーワードは、アイテムをスクリプトのアウトプットフィードに追加します。スクリプトにapi:push エレメントがない場合、ここから結果としてアウトプットアイテムは出されません。

パラメータ

  • item:フィードに追加されるアイテム。存在しない場合、スタックの一番上のアイテムが追加されます。
  • title:フィードアイテムのタイトル。
  • desc[ription]:フィードアイテムの説明。提供されるものがない場合は、api:push キーワードの範囲がこのアトリビュートの値として使われます。api:push キーワードの範囲は、他のキーワード、HTML タグなどを含むことがあります。すべてのものがテンプレートとして評価され、説明の設定に使われます。
  • op:呼び出して、結果アイテムを追加するオペレーションの名前。次に例を示します。
      <api:push op="myOp"/>    
      

    これは、次の簡易版です。

    <api:call op="myOp">
      <api:push/>
    </api:call>

  • enc[oding]:説明のエンコーディング。デフォルトで、Sync App は説明をエスケープ XML として追加します。このパラメータを"cdata" に設定して、CData として説明をエンコードしてエスケープされていない XML を含めることを選択できます。

アトリビュートの制御

None

サンプル

追加されたそれぞれのアイテムの説明を作成。説明はapi:push キーワードの範囲の中のテキストで、以下に示されます:
<api:call op="fileListDir?mask=*.log">
  <api:push>
    The .log file contains details about the transmission, including any error messages.
  </api:push>
</api:call>

XML Connector for CData Sync

api:script

api:script キーワードは、スクリプトブロックを作成するために使われます はSQL 構文に対応する.

パラメータ

  • method:HTTP メソッド(GET、POST、PUT/PATCH/MERGE、やDELETE)はスクリプトを呼び出すために使われます。カンマ区切りのリストで複数のメソッドを指定します。 これらの メソッドは、SELECT、INSERT、UPDATE、およびDELETE の各クエリに対応します。

アトリビュートの制御

None

サンプル

Call two operations that manipulate remote XML.この例は、OData API、odata.org Northwind リファレンスサービスを使います。次の説明では、初めのブロックはスクリプトがPOST メソッドを使ってアクセスされた場合のみ実行されます(INSERT 構文が実行されます)、一方、二つ目のブロックはスクリプトがGET メソッドを使ってアクセスされた場合のみ実行されます(SELECT 構文が実行されます)。

<api:script method="POST">
  <api:set attr="sql.rec:name" value="[_input.name]"/>
  <api:set attr="sql.rec:address" value="[_input.address]"/>
  <api:call op="sqliteInsert" in="sql">
    <api:push/>
  </api:call>
</api:script>
<api:script method="GET">
  <api:set attr="sql.query" value="SELECT * FROM [sql.table];"/>
  <api:call op="sqliteQuery" in="sql">
    <api:push/>
  </api:call>
</api:script>

XML Connector for CData Sync

api:select

api:select キーワードは、他のプログラミング言語のswitch-case ブロックに類似しており、複雑な条件分を作成するために使われます。api:select のボディは、一つかそれ以上のapi:case キーワードおよび一つのapi:default キーワードを有します。

api:select の値は、api:case で指定された値にマッチします。api:case 構文のボディは、キーワードおよび、指定された値がapi:select キーワードの値に合致する場合に実行される構文を有します。

api:default 構文のボディは、api:case 構文の結果のどれもがマッチしない場合のみ実行されます。api:default キーワードは、パラメータを持たず、api:select の中で一度のみ出現します。

パラメータ

  • value:api:case 構文で指定された値と比較する値。
  • attr:api:case 構文で指定された値と比較される値のアトリビュート。

アトリビュートの制御

None

サンプル

会社名に応じてアイコンを設定。api:case エレメントは、company_name アトリビュートの"CompanyA"および"CompanyB"に合致します。そしてケースに関連するアクションがとられます。

<api:select value="[company_name]">
  <api:case value="CompanyA">
    <img src="http://www.companya.com/favicon.ico" />
  </api:case>
  <api:case value="CompanyB">
    <img src="http://www.companyb.com/favicon.ico" />
  </api:case>
  <api:default>
    <img src="http://www.myhosting.com/generic.ico"/>
  </api:default>
</api:select>

<p>

関連項目

  • api:case:api:select のケースを書く。
  • api:default:api:select のデフォルトケースを書く。

XML Connector for CData Sync

api:set

api:set キーワードはアトリビュートで値を設定します。アトリビュートが、存在しないアイテム内に設定されている場合、アイテムは自動的に生成されます。

api:set を使って値を設定する方法は2種類あります。値のパラメータを設定するか、マルチラインで複雑な大きな値の場合には、キーワード自身のスコープを使って値を設定することもできます。

パラメータ

  • item:アイテムパラメータは、アトリビュートが設定されているアイテムを指定するために使われます。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアイテムが使われます。
  • attr:アトリビュートの名前。ドット表現(例えば item.prefix:attr)アイテムを指定することもできます。完全なアトリビュート名にはname、および接頭辞が両方ありますが、接頭辞は必須ではありません。
  • value:アトリビュートにアサインされる値。このパラメータが与えられていない場合、api:set キーワードのの全ボディが値として使われます。これは、長い、もしくは複数の値を設定する際に便利です。
  • copyfrom:このパラメータにて指定されたアイテムからのアトリビュートはアイテムパラメータにより指定されたアイテムにコピーされます。

アトリビュートの制御

None

サンプル

キーワードのスコープを使って、"input" という名前のアイテムのメッセージアトリビュートの値を設定します:

<api:set item="input" attr="message">
  Dear [name],
  You have won a cruise trip to Hawaii.
  Please confirm your acceptance by [date].
  Thanks, [sales]
</api:set>

関連項目

  • api:unset:アイテムからアトリビュートを削除する:
  • api:setm:一つのキーワードしか持たないマルチプルアトリビュートを設定する。

XML Connector for CData Sync

api:setc

api:setc キーワードは、API Script 内のかぎ括弧などの特殊文字をエスケープすることなく、静的なテキストを追加することを可能にします。特殊文字はバックスラッシュでエスケープできますが、このキーワードはショートカットを提供します。例えば、このキーワードはXPath を簡単に設定することができます。

パラメータ

  • item:アトリビュートをセットするアイテム。
  • attr:アトリビュートの名前。
  • value:アトリビュートにアサインされる値。このパラメータが与えられていない場合、api:setc キーワードのの全ボディが値として使われます。これは、長い、もしくは複数の値を設定する際に便利です。
  • copyfrom:このパラメータにて指定されたアイテムからのアトリビュートはアイテムパラメータにより指定されたアイテムにコピーされます。

アトリビュートの制御

None

サンプル

エスケープされていないXPath を設定:

<api:setc attr="xpath" value="/root/book[1]/@name" />

XML Connector for CData Sync

api:setm

api:setm キーワードは、api:set の省略であり、複数のセットを一つのキーワードから実行するために使われます。

\r\n により区切られた、それぞれのラインが異なるオペレーションセットです。Python のように、複数値はシングルクオート(''')で指定されます。

はじめのイコールサイン("=") はアトリビュート名と値を区別します。これは、アトリビュート名がスペースを含むことができることを意味します。ただし、最初と最後のスペースは無視されます。例で示されているように、最初と最後のスペースを含むためには引用符を使うことができます。

パラメータ

  • item:アトリビュートがセットされているアイテム。アイテムの指定は必須ではありません。アイテムが指定されない場合には、ディフォルトアイテムが使われます。

アトリビュートの制御

None

サンプル

キーワードのスコープを使ってコンタクトアトリビュートを設定:

<api:setm>
name = ContactName 
company = ContactCompany
address = 600 Market Street
includespace = " This string has a leading space"
</api:setm>

関連項目

  • api:set:アイテムでアトリビュートを設定。

XML Connector for CData Sync

api:throw

api:throw キーワードは、スクリプト内から(例外)エラーをあげるために使われます。

パラメータ

  • code:ソースを特定するため、もしくは例外の意味を特定するための文字列値。このパラメータは必須です。
  • desc[ription]:エラー状況を説明する短いメッセージを特定する、オプションのパラメータ。
  • details:エラー状況を診断するために役立つ追加データを特定する、オプションのパラメータ。

アトリビュートの制御

None

サンプル

次のサンプルは、エラーコードおよび説明を明示的に定義します:

<api:throw code="myerror" desc="thedescription" />

関連項目

  • api:try:例外のキャッチのスコープを定義します。
  • api:catch:スローされた例外をキャッチし、例外処理を定義します。

XML Connector for CData Sync

api:try

api:try およびapi:catch キーワードは、スクリプト内で例外処理ブロックを作成するために使われます。api:try のボディ中のキーワードがAPIException をスローすると、Sync App は、スコープ内で合致するapi:catch キーワードを探し、キャッチボディを実行します。

パラメータ

None

アトリビュートの制御

None

サンプル

例外をスローし、キャッチする。キーワードのスコープ内で、rsb エンコードおよびrsb メッセージアトリビュートが、現在のアイテムに足され、追加されます。

<api:call op="...">
  <api:try>
    <api:throw code="myerror" description="thedescription" details="Other Details."/>
    <api:catch code="myerror">
      <api:set attr="api:ecode" value="[_code]"/>
      <api:set attr="api:emessage" value="[_description]: [_details]"/>
      <api:push/>
    </api:catch>
  </api:try>
</api:call>

関連項目

  • api:catch:例外がスローされるプロセス。
  • api:throw:例外の強制。

XML Connector for CData Sync

api:unset

api:unset キーワードは、アイテムからのアトリビュート、もしくはアイテム自身を削除するために使われます。

パラメータ

  • item:アトリビュートが削除されるアイテム。アイテムを指定しない場合には、ディフォルトアウトプットアイテムが使われます。このパラメータはアイテムを削除するためにも使われます。
  • attr:アイテムから削除するアトリビュート。glob mask を使って、複数のパラメータを削除することができます。例えば、"*.foo"。

アトリビュートの制御

None

サンプル

追加される前にアイテムからアトリビュートを削除する:

<api:call op="fileListDir">
  <api:unset attr="file:size"/>
  <api:push/>
</api:call>

関連項目

  • api:set:アイテムでアトリビュートを設定。

XML Connector for CData Sync

api:validate

api:validate を使って、必須の値が提供されない場合にエラーをスローできます。

パラメータ

  • item:確認するアトリビュートを含むアイテム。
  • attr:確認するアトリビュート。アトリビュートが存在しない場合、エラーが投げられます。
  • code:確認が失敗した場合に投げられるエラーコード。デフォルトは"rsb.validate" です。
  • desc:確認が失敗した場合に投げられるエラー説明。デフォルトで、指定されたアトリビュートが必須である旨のメッセージが投げられます。

サンプル

_query アイテムがId アトリビュートを含まない場合には、特定のメッセージが投げられます:

<api:validate attr="_query.Id"   desc="The Id is required to delete."/>

関連項目

  • api:throw:スクリプト内から(例外)エラーをあげます。

XML Connector for CData Sync

接続文字列オプション

接続文字列プロパティは、接続を確立するために使用できるさまざまなオプションです。このセクションでは、本プロバイダーの接続文字列で設定できるオプションの一覧を示します。詳細については各リンクをクリックしてください。

接続を確立する方法について詳しくは、接続の確立を参照してください。

Authentication


プロパティ説明
AuthSchemeリモートサービスに接続する際に使用する認証の種類。
AccessKeyアカウントのアクセスキー。この値にはセキュリティ認証情報ページからアクセスできます。
SecretKeyアカウントのシークレットキー。この値にはセキュリティ認証情報ページからアクセスできます。
ApiKeyIBM Cloud にユーザーを識別させるためのAPI キー。
UserThe user account used to authenticate.
PasswordThe password used to authenticate the user.
SharePointEdition使用しているSharePoint のエディション。SharePointOnline またはSharePointOnPremise のいずれかに設定します。

Connection


プロパティ説明
ConnectionTypeXML のファイルが保存および取得されるファイルストレージサービス、サーバー、またはファイルアクセスプロトコルを指定します。
URIXML リソースロケーションのUniform Resource Identifier (URI)。
XPathXML ドキュメント内で同じ階層で繰り返す要素のXPath(ドキュメントを複数行に分割することに使われます)。
DataModelXML ドキュメントをパースしてデータベースのメタデータを生成するときに使用するデータモデルを指定します。
XMLFormatSpecifies the format of the XML document.
RegionS3ライクなWeb サービスのホスティングリージョン。
ProjectIdGoogle Cloud Storage インスタンスが存在するプロジェクトのId。
OracleNamespace使用するOracle Cloud Object Storage ネームスペース。
StorageBaseURLクラウドストレージサービスプロバイダーのURL。
SimpleUploadLimitこの設定はしきい値をバイト単位で設定します。このしきい値を超えると、provider は1つのリクエストですべてをアップロードするのではなく、マルチパートでアップロードを実行します。
UseVirtualHostingTrue(デフォルト)の場合、バケットはホスト形式のリクエストを使用してリクエストで参照されます:http://yourbucket.s3.amazonaws.com/yourobject。False に設定した場合、Bean はパス形式のリクエストを使用します:http://s3.amazonaws.com/yourbucket/yourobject。S3ベースのカスタムサービスの場合、CustomURL が指定されていると、このプロパティはFalse に設定されることに注意してください。
UseLakeFormationこのプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

AWS Authentication


プロパティ説明
AWSAccessKeyAWS アカウントのアクセスキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSSecretKeyAWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSRoleARN認証時に使用するロールのAmazon リソースネーム。
AWSPrincipalARNAWS アカウントのSAML ID プロバイダーのARN。
AWSRegionAmazon Web サービスのホスティングリージョン。
AWSCredentialsFile認証に使用するAWS クレデンシャルファイルへのパス。
AWSCredentialsFileProfile提供されたAWSCredentialsFile から使用されるプロファイルの名前。
AWSSessionTokenAWS のセッショントークン。
AWSExternalId他のアカウントでロールを引き受ける際に必要となる一意の識別子。
MFASerialNumberMFA デバイスが使用されている場合は、そのシリアル番号。
MFATokenMFA デバイスから利用できる一時トークン。
TemporaryTokenDuration一時トークンが持続する時間(秒単位)。
ServerSideEncryption有効にすると、Amazon S3バケットへのファイルアップロードがサーバー側で暗号化されます。
SSEContextA BASE64-encoded UTF-8 string holding JSON which represents a string-string (key-value) map.
SSEEnableS3BucketKeysConfiguration to use an S3 Bucket Key at the object level when encrypting data with AWS KMS. Enabling this will reduce the cost of server-side encryption by lowering calls to AWS KMS.
SSEKeyA symmetric encryption KeyManagementService key, that is used to protect the data when using ServerSideEncryption.

Azure Authentication


プロパティ説明
AzureStorageAccountAzure ストレージアカウント名。
AzureAccessKeyAzure アカウントに関連付けられているストレージキー。
AzureSharedAccessSignature認証に使用可能な共有アクセスキー署名。
AzureTenantデータにアクセスするために使用されるMicrosoft Online テナント。指定しない場合は、デフォルトのテナントが使用されます。
AzureEnvironment接続を確立するときに使用するAzure 環境。

SSO


プロパティ説明
SSOLoginURLID プロバイダーのログインURL。
SSOPropertiesセミコロンで区切られたID プロバイダーへの接続に必要な追加プロパティ。
SSOExchangeUrlSAML 応答を処理してサービスの資格情報と交換するために使用するURL。

OAuth


プロパティ説明
OAuthVersion使われているOAuth のバージョン。
OAuthClientIdOAuth 認証サーバーを使用してアプリケーションを登録する場合に割り当てられたクライアントId。
OAuthClientSecretOAuth 認証サーバーにアプリケーションを登録する場合に割り当てられたクライアントシークレット。
Scope初期アクセストークンとリフレッシュトークンを取得するスコープを指定します。
OAuthGrantTypeOAuth フローのグラント種別。
OAuthPasswordGrantModeOAuthGrantType がPassword に設定されている場合のクライアントId とクライアントシークレットの渡し方。
OAuthIncludeCallbackURLアクセストークンリクエストにコールバックURL を含めるかどうか。
OAuthAuthorizationURLOAuth サービスの認可URL。
OAuthAccessTokenURLOAuth アクセストークンを取得するURL。
OAuthRefreshTokenURLOAuth トークンをリフレッシュするURL。
OAuthRequestTokenURLサービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。
AuthTokenOAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。
AuthKeyOAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。
OAuthParamsOAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。

JWT OAuth


プロパティ説明
OAuthJWTCertJWT 証明書のストア。
OAuthJWTCertTypeJWT 証明書を格納するキーストアの種類。
OAuthJWTCertPasswordOAuth JWT 証明書のパスワード。
OAuthJWTCertSubjectOAuth JWT 証明書のサブジェクト。
OAuthJWTAudienceJWT を使用できるエンティティのスペース区切りリスト。
OAuthJWTValidityTimeJWT の有効期限(秒)。

Kerberos


プロパティ説明
KerberosKDCユーザーの認証で使用されるKerberos キー配布センター(KDC)サービス。
KerberosRealmユーザー認証に使用されるKerberos 領域。
KerberosSPNKerberos ドメインコントローラーのサービスプリンシパル名(SPN)。
KerberosKeytabFileKerberos プリンシパルと暗号化されたキーのペアを含むKeytab ファイル。
KerberosServiceRealmサービスのKerberos レルム。
KerberosServiceKDCサービスのKerberos KDC。
KerberosTicketCacheMIT Kerberos 資格情報キャッシュファイルへのフルパス。

SSL


プロパティ説明
SSLClientCertSSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストア。
SSLClientCertTypeTLS/SSL クライアント証明書を格納するキーストアの種類。
SSLClientCertPasswordTLS/SSL クライアント証明書のパスワード。
SSLClientCertSubjectTLS/SSL クライアント証明書のサブジェクト。
SSLModeFTP またはFTPS サーバーに接続する際の認証メカニズム。
SSLServerCertTLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。

SSH


プロパティ説明
SSHAuthModeサービスへのSSH トンネルを確立する際に使用される認証方法。
SSHClientCertSSHUser の認証に使用する証明書。
SSHClientCertPasswordSSHClientCert キーのパスワード(ある場合)。
SSHClientCertSubjectSSH クライアント証明書のサブジェクト。
SSHClientCertTypeSSHClientCert 秘密鍵の種類。
SSHUserSSH ユーザー。
SSHPasswordSSH パスワード。

Firewall


プロパティ説明
FirewallTypeプロキシベースのファイアウォールで使われるプロトコル。
FirewallServerプロキシベースのファイアウォールの名前もしくはIP アドレス。
FirewallPortプロキシベースのファイアウォールのTCP ポート。
FirewallUserプロキシベースのファイアウォールに認証するために使うユーザー名。
FirewallPasswordプロキシベースのファイアウォールへの認証に使われるパスワード。

Proxy


プロパティ説明
ProxyAutoDetectこれは、システムプロキシ設定を使用するかどうかを示します。
ProxyServerHTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。
ProxyPortProxyServer プロキシが起動しているTCP ポート。
ProxyAuthSchemeProxyServer プロキシへの認証で使われる認証タイプ。
ProxyUserProxyServer プロキシへの認証に使われるユーザー名。
ProxyPasswordProxyServer プロキシへの認証に使われるパスワード。
ProxySSLTypeProxyServer プロキシへの接続時に使用するSSL タイプ。
ProxyExceptionsProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。

Logging


プロパティ説明
LogModulesログファイルに含めるコアモジュール。

Schema


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。
BrowsableSchemasこのプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesこのプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。
Views使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。
PushAttributesSet PushAttributes to true to push any identified attributes as columns.
FlattenArraysデフォルトで、ネスト配列はXML 文字列として返されます。 FlattenArrays プロパティはネスト配列の要素をフラット化してそれぞれのカラムとするために使われます。ネスト配列から返す要素の数に FlattenArrays を設定します。
FlattenObjectsフラット化されたオブジェクトプロパティとしてカラムを表示するには、 FlattenObjects をtrue に設定します。そうでなければ、配列にネストされたオブジェクトはXML 文字列として返されます。
QualifyColumnsControls whether the provider will use relative column names.

Miscellaneous


プロパティ説明
BackwardsCompatibilityMode2017バージョンで使用可能なXML 機能を使用するには、 BackwardsCompatibilityMode をtrue に設定します。
CharsetXML ファイルに移行、またはXML ファイルから移行した文字データをエンコードおよびデコードするための、セッション毎の文字セットを指定します。デフォルト値はUTF-8 です。
ClientCultureこのプロパティを使用して、クライアントアプリケーションが受け取るデータの形式(通貨値など)を指定できます。このプロパティは、クライアントアプリケーションがマシンの現在のカルチャ設定をサポートしていない場合に使用できます。例えば、Microsoft Access では'en-US' が必要です。
Cultureこの設定を使用して、provider に渡された特定のデータ型をprovider が解釈する方法を決定するカルチャ設定を指定できます。例えば、Culture='de-DE' の設定にすると、米国のマシンでもドイツ語形式で出力されます。
CustomHeadersユーザーが決定したその他のヘッダー(オプション)。
CustomUrlParamsリクエストに含めるカスタムクエリ文字列。
ExcludeFilesテーブルとしてモデル化されたファイル一式から除外するファイル拡張子のカンマ区切りリスト。
FlattenRowLimitThe maximum number of rows that can result from a single flattened element.
FolderIdGoogle Drive のフォルダID。設定すると、URI で指定されたリソースの位置はすべての操作においてFolder ID からの相対位置となります。
GenerateSchemaFilesスキーマを生成して保存するユーザーの好みのタイミングを示します。
IncludeDropboxTeamResourcesDropbox チームフォルダやファイルを含めるかどうかを示します。
IncludeFilesテーブルとしてモデル化されたファイル一式に含めるファイル拡張子のカンマ区切りリスト。
IncludeItemsFromAllDrivesGoogle Drive の共有ドライブ項目を結果に含めるかどうか。存在しないかfalse に設定されている場合、共有ドライブ項目は返されません。
MaxRowsクエリで集計またはGROUP BY を使用しない場合に返される行数を制限します。これはLIMIT 句よりも優先されます。
MetadataDiscoveryURI複数のファイルを1つのテーブルに集約する際に使用します。このプロパティは、集約されたテーブルのスキーマを決定するために読み込む特定のファイルを指定します。
Otherこれらの隠しプロパティは特定のユースケースでのみ使用されます。
PagesizeXML から返されるページあたりの結果の最大数。
PathSeparatorDetermines the character which will be used to replace the file separator.
PseudoColumnsこのプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。
RowScanDepth動的にテーブルのカラムを決定するためにスキャンする行数。
Timeoutタイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。
TypeDetectionSchemeDetermines how to determine the data types of columns.
URISeparatorA delimiter used to separate different values in the URI property.
UserDefinedViewsカスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。
XML Connector for CData Sync

Authentication

このセクションでは、本プロバイダーの接続文字列で設定可能なAuthentication プロパティの全リストを提供します。


プロパティ説明
AuthSchemeリモートサービスに接続する際に使用する認証の種類。
AccessKeyアカウントのアクセスキー。この値にはセキュリティ認証情報ページからアクセスできます。
SecretKeyアカウントのシークレットキー。この値にはセキュリティ認証情報ページからアクセスできます。
ApiKeyIBM Cloud にユーザーを識別させるためのAPI キー。
UserThe user account used to authenticate.
PasswordThe password used to authenticate the user.
SharePointEdition使用しているSharePoint のエディション。SharePointOnline またはSharePointOnPremise のいずれかに設定します。
XML Connector for CData Sync

AuthScheme

リモートサービスに接続する際に使用する認証の種類。

解説

Amazon S3

ConnectionType をAmazon S3 に設定する場合、以下のオプションが利用できます。

  • AwsRootKeys:ルートユーザーのアクセスキーおよびシークレットを使用する場合に設定。簡易なテストには便利ですが、本番環境のユースケースでは、権限を絞ったものを使用することをお勧めします。
  • AwsEC2Roles:CData Sync App が現在実行されているEC2 マシンに割り当てられたIAM ロールを、自動的に使用する場合に設定。
  • AwsIAMRoles:接続にIAM ロールを使用する場合に設定。
  • ADFS:ADFS をID プロバイダーとしたシングルサインオン接続を使用する場合に設定。
  • OKTA:OKTA をID プロバイダーとしたシングルサインオン接続を使用する場合に設定。
  • PingFederate:PingFederate をID プロバイダーとしたシングルサインオン接続を使用する場合に設定。
  • AwsMFA:マルチファクタ認証を使用する場合に設定。
  • AwsTempCredentials:一時的なセキュリティ認証情報を、セッショントークンと一緒に利用して接続する場合に設定。
  • AwsCredentialsFile:認証に認証情報ファイルを使用する場合に設定。
  • AzureAD:AzureAD をID プロバイダーとしたシングルサインオン接続を使用する場合に設定。

Azure の各種サービス

ConnectionType をAzure Blob Storage、Azure Data Lake Storage Gen1、Azure Data Lake Storage Gen2、Azure Data Lake Storage Gen2 SSL、OneDrive のいずれかに設定する場合、以下のオプションが利用可能です。

  • AzureAD:Azure Active Directory OAuth 認証を実行する場合に設定。
  • AzureMSI:Azure VM で実行しているときに、マネージドサービスID の資格情報を自動的に取得する場合に設定。
  • AzureServicePrincipal:Azure サービスプリンシパルとして認証する場合に設定。
  • AzureServicePrincipalCert:証明書を使用してAzure サービスプリンシパルとして認証する場合に設定。
  • AccessKey:XML アカウントに関連付けられているストレージキーで認証する場合に設定。
  • AzureStorageSAS:共有アクセス署名(SAS)で認証する場合に設定。

Azure Files

ConnectionType をAzure Files に設定する場合、以下のオプションのみ利用できます。

  • AccessKey:XML アカウントに関連付けられているストレージキーで認証する場合に設定。
  • AzureStorageSAS:共有アクセス署名(SAS)で認証する場合に設定。

Box

ConnectionType をBox に設定する場合、以下のオプションが利用できます。

  • OAuth:OAuth1.0 またはOAuth2.0 のいずれかを使用し、特定のフローはOAuthGrantType によって決定されます。OAuth のどのバージョンを使用するかを決定するには、OAuthVersion を設定する必要があります。
  • OAuthJWT:JWT ベアラーグラント種別でOAuth2 を使用します。OAuthJWTCertType およびOAuthJWTCert は、JWT がどの証明書で署名されるかを決定します。OAuthVersion は2.0に設定する必要があります。

Dropbox

ConnectionType をDropbox に設定する場合、以下のオプションのみ利用できます。

OAuth:OAuth1.0 またはOAuth2.0 のいずれかを使用し、特定のフローはOAuthGrantType によって決定されます。OAuth のどのバージョンを使用するかを決定するには、OAuthVersion を設定する必要があります。

FTP(S)

ConnectionType をFTP またはFTPS に設定する場合、以下のオプションのみ利用できます。

Basic:基本的なユーザー資格情報(ユーザー / パスワード)。

Google の各種サービス

ConnectionType がGoogle Cloud Storage またはGoogle Drive を指している場合、以下のオプションが利用できます。

  • OAuth:OAuth1.0 またはOAuth2.0 のいずれかを使用し、特定のフローはOAuthGrantType によって決定されます。OAuth のどのバージョンを使用するかを決定するには、OAuthVersion を設定する必要があります。
  • OAuthJWT:JWT ベアラーグラント種別でOAuth2 を使用します。OAuthJWTCertType およびOAuthJWTCert は、JWT がどの証明書で署名されるかを決定します。OAuthVersion は2.0に設定する必要があります。
  • GCPInstanceAccount:GCP 仮想マシン上で実行している場合は、プロバイダーは仮想マシンに関連付けられたサービスアカウントを使用して認証できます。

HDFS

ConnectionType をHDFS またはHDFS Secure に設定する場合、以下のオプションが利用できます。

  • None:認証なし。
  • Negotiate:Kerberos 認証。

HTTP

ConnectionType をHTTP またはHTTPS に設定する場合、以下のオプションが利用できます。

  • None:認証なし。
  • Basic:基本的なユーザー / パスワード認証。
  • Digest:User およびPassword でHTTP Digest 認証を使用します。
  • OAuth:OAuth1.0 またはOAuth2.0 のいずれかを使用し、特定のフローはOAuthGrantType によって決定されます。OAuth のどのバージョンを使用するかを決定するには、OAuthVersion を設定する必要があります。
    • ベアラートークン認証:AuthScheme=OAuth、InitiateOAuth=Off、およびOAuthAccessToken=Bearer token value。
  • OAuthJWT:JWT ベアラーグラント種別でOAuth2 を使用します。OAuthJWTCertType およびOAuthJWTCert は、JWT がどの証明書で署名されるかを決定します。OAuthVersion は2.0に設定する必要があります。
  • OAuthPassword:パスワードグラント種別でOAuth2 を使用します。User およびPassword は資格情報です。OAuthVersion は2.0に設定する必要があります。
  • OAuthClient:クライアント資格情報グラント種別でOAuth2 を使用します。OAuthClientId およびOAuthClientSecret は資格情報です。OAuthVersion は2.0に設定する必要があります。
  • OAuthPKCE:認証コードグラント種別とPKCE 拡張仕様でOAuth2 を使用します。OAuthClientId は資格情報です。OAuthVersion は2.0に設定する必要があります。

IBM Cloud Object Storage

ConnectionType をIBM Object Storage Source に設定する場合、以下のオプションも利用できます。

  • OAuth:InitiateOAuth によって決定された特定のフローでいずれかのOAuthを使用します。ApiKey が設定されていないと、このフローは正常に終了しません。
  • HMAC:AccessKey およびSecretKey を使用して、IBM Cloud Object Storage を認証します。

Oracle Cloud Storage

ConnectionType をOracle Cloud Storage に設定する場合、以下のオプションのみ利用できます。

HMAC:AccessKey およびSecretKey を使用して、Oracle Cloud Storage を認証します。

SFTP

このConnectionType は、SFTP というAuthScheme を使用するのがデフォルトですが、実際は認証方式はSSHAuthMode プロパティを使用して制御されます。詳しくは、このプロパティのドキュメントを参照してください。

SharePoint REST

ConnectionType をSharePoint REST に設定する場合、以下のオプションも利用できます。

  • AzureAD:Azure Active Directory OAuth 認証を実行する場合に設定。
  • AzureMSI:Azure VM で実行しているときに、マネージドサービスID の資格情報を自動的に取得する場合に設定。
  • AzureServicePrincipal:Azure サービスプリンシパルとして認証する場合に設定。
  • AzureServicePrincipalCert:証明書を使用してAzure サービスプリンシパルとして認証する場合に設定。

SharePoint SOAP

ConnectionType をSharePoint SOAP に設定する場合、以下のオプションも利用できます。

  • Basic:認証には、基本的なユーザー / パスワード資格情報を使用。
  • ADFS:ADFS をID プロバイダーとしたシングルサインオン接続を使用する場合に設定。
  • Okta:OKTA をID プロバイダーとしたシングルサインオン接続を使用する場合に設定。
  • OneLogin:OneLogin をID プロバイダーとしたシングルサインオン接続を使用する場合に設定。

XML Connector for CData Sync

AccessKey

アカウントのアクセスキー。この値にはセキュリティ認証情報ページからアクセスできます。

解説

アカウントのアクセスキー。この値には、使用しているサービスに応じたセキュリティ認証情報ページからアクセスできます。

XML Connector for CData Sync

SecretKey

アカウントのシークレットキー。この値にはセキュリティ認証情報ページからアクセスできます。

解説

アカウントのシークレットキー。この値には、使用しているサービスに応じたセキュリティ認証情報ページからアクセスできます。

XML Connector for CData Sync

ApiKey

IBM Cloud にユーザーを識別させるためのAPI キー。

解説

XML REST API のリソースへのアクセスは、トークンを取得するためのAPI キーで管理されています。API キーは、[Manage(管理)]->[Access(IAM)]->[Users(ユーザー)]と移動して、[Create(作成)]をクリックすることで作成できます。

XML Connector for CData Sync

User

The user account used to authenticate.

解説

Together with Password, this field is used to authenticate against the server.

This property will refer to different things based on the context, namely the value of ConnectionType and AuthScheme:

  • ConnectionType=AmazonS3
    • AuthScheme=ADFS: This refers to your ADFS username.
    • AuthScheme=Okta: This refers to your Okta username.
    • AuthScheme=PingFederate: This refers to your PingFederate username.
  • ConnectionType=FTP(S)
    • AuthScheme=Basic: This refers to your FTP(S) server username.
  • ConnectionType=HDFS/HDFS Secure
    • AuthScheme=Negotiate: This refers to your HDFS intance username.
  • ConnectionType=HTTP(S)
    • AuthScheme=Basic: This refers to the username associated with the HTTP stream.
    • AuthScheme=Digest: This refers to the username associated with the HTTP stream.
    • AuthScheme=OAuthPassword: This refers to the username associated with the HTTP stream.
  • ConnectionType=SharePoint SOAP
    • AuthScheme=Basic: This refers to your SharePoint account username.
    • AuthScheme=ADFS: This refers to your ADFS username.
    • AuthScheme=Okta: This refers to your Okta username.
    • AuthScheme=OneLogin: This refers to your OneLogin username.

XML Connector for CData Sync

Password

The password used to authenticate the user.

解説

The User and Password are together used to authenticate with the server.

This property will refer to different things based on the context, namely the value of ConnectionType and AuthScheme:

  • ConnectionType=AmazonS3
    • AuthScheme=ADFS: This refers to your ADFS password.
    • AuthScheme=Okta: This refers to your Okta password.
    • AuthScheme=PingFederate: This refers to your PingFederate password.
  • ConnectionType=FTP(S)
    • AuthScheme=Basic: This refers to your FTP(S) server password.
  • ConnectionType=HDFS/HDFS Secure
    • AuthScheme=Negotiate: This refers to your HDFS intance password.
  • ConnectionType=HTTP(S)
    • AuthScheme=Basic: This refers to the password associated with the HTTP stream.
    • AuthScheme=Digest: This refers to the password associated with the HTTP stream.
    • AuthScheme=OAuthPassword: This refers to the password associated with the HTTP stream.
  • ConnectionType=SharePoint SOAP
    • AuthScheme=Basic: This refers to your SharePoint account password.
    • AuthScheme=ADFS: This refers to your ADFS password.
    • AuthScheme=Okta: This refers to your Okta password.
    • AuthScheme=OneLogin: This refers to your OneLogin password.

XML Connector for CData Sync

SharePointEdition

使用しているSharePoint のエディション。SharePointOnline またはSharePointOnPremise のいずれかに設定します。

解説

使用しているSharePoint のエディション。SharePointOnline またはSharePointOnPremise のいずれかに設定します。

XML Connector for CData Sync

Connection

このセクションでは、本プロバイダーの接続文字列で設定可能なConnection プロパティの全リストを提供します。


プロパティ説明
ConnectionTypeXML のファイルが保存および取得されるファイルストレージサービス、サーバー、またはファイルアクセスプロトコルを指定します。
URIXML リソースロケーションのUniform Resource Identifier (URI)。
XPathXML ドキュメント内で同じ階層で繰り返す要素のXPath(ドキュメントを複数行に分割することに使われます)。
DataModelXML ドキュメントをパースしてデータベースのメタデータを生成するときに使用するデータモデルを指定します。
XMLFormatSpecifies the format of the XML document.
RegionS3ライクなWeb サービスのホスティングリージョン。
ProjectIdGoogle Cloud Storage インスタンスが存在するプロジェクトのId。
OracleNamespace使用するOracle Cloud Object Storage ネームスペース。
StorageBaseURLクラウドストレージサービスプロバイダーのURL。
SimpleUploadLimitこの設定はしきい値をバイト単位で設定します。このしきい値を超えると、provider は1つのリクエストですべてをアップロードするのではなく、マルチパートでアップロードを実行します。
UseVirtualHostingTrue(デフォルト)の場合、バケットはホスト形式のリクエストを使用してリクエストで参照されます:http://yourbucket.s3.amazonaws.com/yourobject。False に設定した場合、Bean はパス形式のリクエストを使用します:http://s3.amazonaws.com/yourbucket/yourobject。S3ベースのカスタムサービスの場合、CustomURL が指定されていると、このプロパティはFalse に設定されることに注意してください。
UseLakeFormationこのプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。
XML Connector for CData Sync

ConnectionType

XML のファイルが保存および取得されるファイルストレージサービス、サーバー、またはファイルアクセスプロトコルを指定します。

解説

ConnectionType を以下のいずれかに設定します。

  • Auto:Sync App は、提供されたURI の構文から接続タイプを推測します。
  • Local:XML のファイルはローカルマシンに保存されます。
  • Amazon S3
  • Azure Blob Storage
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • Azure Data Lake Storage Gen2 SSL
  • Azure Files
  • Box
  • Dropbox
  • FTP
  • FTPS
  • Google Cloud Storage
  • Google Drive
  • HDFS
  • HDFS Secure
  • HTTP:HTTP Streams でホストされているXML ファイルに接続します。
  • HTTPS:HTTPS Streams でホストされているXML ファイルに接続します。
  • IBM Object Storage Source
  • OneDrive
  • Oracle Cloud Storage
  • SFTP
  • SharePoint REST
  • SharePoint SOAP

ConnectionType を以下のいずれかに設定します。

  • Auto:Sync App は、提供されたURI の構文から接続タイプを推測します。
  • Local:XML のファイルはローカルマシンに保存されます。
  • Amazon S3
  • Azure Blob Storage
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • Azure Data Lake Storage Gen2 SSL
  • Azure Files
  • Box
  • Dropbox
  • FTP
  • FTPS
  • Google Cloud Storage
  • Google Drive
  • HDFS
  • HDFS Secure
  • HTTP:HTTP Streams でホストされているXML ファイルに接続します。
  • HTTPS:HTTPS Streams でホストされているXML ファイルに接続します。
  • IBM Object Storage Source
  • OneDrive
  • Oracle Cloud Storage
  • SFTP
  • SharePoint REST
  • SharePoint SOAP

XML Connector for CData Sync

URI

XML リソースロケーションのUniform Resource Identifier (URI)。

解説

URI プロパティを設定して、ファイルまたはストリームへのパスを指定します。

NOTE:

  • この接続プロパティでは、ConnectionType を設定する必要があります。
  • ディレクトリパスを指定する場合は、一般的に'folder1' ではなく'folder1/' のように、URI の末尾にパス区切り文字を付けることが推奨されます。

複数ファイルのパースおよびマージに使用できる、より高度な機能については、データアクセスのファインチューニング を参照してください。

以下は、使用可能なデータソースのURI 形式の例です。

サービスプロバイダURI 形式
Local Single File Path One table

localPath/file.xml

file://localPath/file.xml

Directory Path (One aggregated table from all files)

localPath

file://localPath

HTTP またはHTTPS http://remoteStream

https://remoteStream

Amazon S3 Single File Path One table

s3://remotePath/file.xml

Directory Path (One aggregated table from all files)

s3://remotePath

Azure Blob Storage Single File Path One table

azureblob://mycontainer/myblob//file.xml

Directory Path (One aggregated table from all files)

azureblob://mycontainer/myblob/

OneDrive Single File Path One table

onedrive://remotePath/file.xml

Directory Path (One aggregated table from all files)

onedrive://remotePath

Google Cloud Storage Single File Path One table

gs://bucket/remotePath/file.xml

Directory Path (One aggregated table from all files)

gs://bucket/remotePath

Google Drive Single File Path One table

gdrive://remotePath/file.xml

Directory Path (One aggregated table from all files)

gdrive://remotePath

Box Single File Path One table

box://remotePath/file.xml

Directory Path (One aggregated table from all files)

box://remotePath

FTP またはFTPS Single File Path One table

ftp://server:port/remotePath/file.xml

Directory Path (One aggregated table from all files)

ftp://server:port/remotePath

SFTP Single File Path One table

sftp://server:port/remotePath/file.xml

Directory Path (One aggregated table from all files)

sftp://server:port/remotePath

Sharepoint Single File Path One table

sp://https://server/remotePath/file.xml

Directory Path (One aggregated table from all files)

sp://https://server/remotePath

接続文字列とクエリの例

以下は、XML ファイルまたはストリームへの接続文字列の例です。

サービスプロバイダ URI 形式 Connection example
Local Single File Path One table

localPath

file://localPath/file.xml

Directory Path (One aggregated table from all files)

localPath

file://localPath

URI=C:\folder1/file.xml
Amazon S3 Single File Path One table

s3://bucket1/folder1/file.xml

Directory Path (One aggregated table from all files)

s3://bucket1/folder1

URI=s3://bucket1/folder1/file.xml; AWSAccessKey=token1; AWSSecretKey=secret1; AWSRegion=OHIO;
Azure Blob Storage Single File Path One table

azureblob://mycontainer/myblob//file.xml

Directory Path (One aggregated table from all files)

azureblob://mycontainer/myblob/

URI=azureblob://mycontainer/myblob/; AzureStorageAccount=myAccount; AzureAccessKey=myKey;

URI=azureblob://mycontainer/myblob/; AzureStorageAccount=myAccount; AuthScheme=OAuth;

OneDrive Single File Path One table

onedrive://remotePath/file.xml

Directory Path (One aggregated table from all files)

onedrive://remotePath

URI=onedrive://folder1/file.xml; AuthScheme=OAuth;

URI=onedrive://SharedWithMe/folder1/file.xml; AuthScheme=OAuth;

Google Cloud Storage Single File Path One table

gs://bucket/remotePath/file.xml

Directory Path (One aggregated table from all files)

gs://bucket/remotePath

URI=gs://bucket/folder1/file.xml; AuthScheme=OAuth; ProjectId=test;
Google Drive Single File Path One table

gdrive://remotePath/file.xml

Directory Path (One aggregated table from all files)

gdrive://remotePath

URI=gdrive://folder1/file.xml;
Box Single File Path One table

box://remotePath/file.xml

Directory Path (One aggregated table from all files)

box://remotePath

URI=box://folder1/file.xml; OAuthClientId=oauthclientid1; OAuthClientSecret=oauthcliensecret1; CallbackUrl=http://localhost:12345;
FTP or FTPS Single File Path One table

ftp://server:port/remotePath/file.xml

Directory Path (One aggregated table from all files)

ftp://server:port/remotePath

URI=ftps://localhost:990/folder1/file.xml; User=user1; Password=password1;
SFTP sftp://server:port/remotePath URI=sftp://127.0.0.1:22/remotePath/file.xml; User=user1; Password=password1;
Sharepoint sp://https://server/remotePath URI=sp://https://domain.sharepoint.com/Documents/file.xml; User=user1; Password=password1;

XML Connector for CData Sync

XPath

XML ドキュメント内で同じ階層で繰り返す要素のXPath(ドキュメントを複数行に分割することに使われます)。

解説

このオプションの値は、現在のXMLFormat に依存します。デフォルトでは、Sync App はドキュメント内のオブジェクト配列を自動的に検索し、行としてモデル化します。このパラメータを使用すると、XPath を使用して明示的にオブジェクト配列を定義できます。

セミコロン区切りのリストを使用して複数のパスを指定できます。 DataModel プロパティは、ネストされたオブジェクト配列がどのようにテーブルとしてモデル化されるかを制御します。

When using the XMLTable XMLFormat, this option uses a special format so that both column and row paths may be provided. Refer to the XMLFormat documentation for more details.

オブジェクト配列の自動検出

XPath を空のままにすると、Sync App はXML ドキュメントを解析してオブジェクト配列を識別することで、XPaths を決定します。DataModel とRowScanDepth プロパティは、行スキャンを設定します。詳しくは、自動スキーマ検出 を参照してください。

このプロパティは、スキーマファイルが存在しない場合に、スキーマ定義を生成するために使われます(スキーマのカスタマイズ 参照)。

XPath の例

Raw データ のpeople サンプルのXPath の例: $.people.vehicles.maintenance

ワイルドカードのXPath はすべてのXPath が同じ階層にあるが異なる名前を含む場合には有効です。

<rsb:set  attr="XPath" value="/feed/*" />

XML Connector for CData Sync

DataModel

XML ドキュメントをパースしてデータベースのメタデータを生成するときに使用するデータモデルを指定します。

解説

Sync App は、XML ドキュメントを同じレベルで繰り返す要素に基づいて行に分割します。

ネスト化されたXML のフラット化

デフォルトでは、Sync App はオブジェクトのプロパティに基づいてカラムを投影し、配列をXML 集計として返します。

  • Object:同じ階層で繰り返されない親要素。
  • Array:同じ階層で繰り返す要素。

次の例では、jobs はプリミティブ配列です。

<jobs>sales</jobs>
<jobs>marketing</jobs>

次の例では、各ノードに子要素があるため、maintenance はオブジェクト配列です。

<maintenance>
  <date>07-17-2017</date>
  <desc>oil change</desc>
</maintenance>
<maintenance>
  <date>01-03-2018</date>
  <desc>new tires</desc>
</maintenance> 

データモデリングストラテジーの選択

次のDataModel 設定が利用可能です。さまざまな設定でデータをクエリする例については、階層データの解析 を参照してください。

  • Document

    各トップレベルオブジェクトの行を表す単一テーブルを返します。このデータモデルでは、ネストされたオブジェクト配列はフラット化されず、集計として返されます。XPath 値が明示的に指定されていない限り、Sync App はXPath として見つかった一番上のオブジェクト配列を識別して使用します。

  • FlattenedDocuments

    ファイル内で利用可能なドキュメントのJOIN を表す単一テーブルを返します。このデータモデルでは、ネストされたXPath 値はSQL JOIN と同じ作法で動作します。さらに、ネストされた兄弟XPath 値(同じ高さの子パス)は、SQL CROSS JOIN として扱われます。明示的に指定されない限り、Sync App は、ファイルを解析し、ネストされたドキュメントを含む利用可能なドキュメントを識別することによって、利用可能なXPath 値を識別します。

  • Relational

    指定された各XPath 値に対して1つずつ、複数のテーブルを返します。このデータモデルでは、ネストされたドキュメント(オブジェクト配列)は、親テーブルにリンクする主キーと外部キーを含むリレーショナルテーブルとして返されます。明示的に指定されない限り、Sync App は、ファイルを解析し、利用可能なドキュメント(ネストされたドキュメントを含む)を識別することによって、利用可能なXPath 値を識別します。

関連項目

  • XPath:含めるドキュメントへのパスを明示的に設定します。
  • FlattenArrays およびFlattenObjects:これらのプロパティを使用して、データを水平にフラット化します。これにより、これらのデータモデルごとに識別されるカラムのカスタマイズが可能になります。
  • 階層データの解析:それぞれのDataModel 設定を使用して、データをクエリする方法を示します。
  • XML データのモデリング:さまざまなデータモデリング戦略のマップを提供します。
  • XML データソースへの接続:接続する必要があるプロパティの概要については、この設定ガイドを参照してください。

XML Connector for CData Sync

XMLFormat

Specifies the format of the XML document.

解説

The following XMLFormat configurations are available.

  • XML

    This is the default format and should be used in the majority of cases. The element or attribute name containing each value is used as the column name for that value.

  • XMLTable

    This format is for when the column name is separate from the data contained in that column. This is useful when the element or attribute containing the data has a generic name (like "Value") instead of being specific to each column.

    Note: DataModel does not apply when using this XMLFormat.

    Example:

        <Report>
          <Table>
              <Row>
                  <Value label="Customer">Mark Rodgers</Value>
                  <Value label="SupportCost">89.28</Value>
                  <Value label="ContractValue">299.99</Value>
              </Row>
              <Row>
                  <Value label="Customer">Hank Howards</Value>
                  <Value label="SupportCost">225.63</Value>
                  <Value label="ContractValue">0.00</Value>
              </Row>
          </Table>
        </Report>
      

    The XPath property requires special syntax to identify the column and row paths. Each path is given with a prefix depending on the type of path. All of the following are required:

    • row: This is the XPath of the element that contains each row's data. In the above example, this is: row:/Report/Table/Row
    • name: This is the XPath of the element containing the column name. In the above example, this is: column:/Report/Table/Row/Value@label
    • value: This is the XPath of the element that contains each column's data inside the row. In the above example, this is: value:/Report/Table/Row/Value

    Each of these paths is separated by a semicolon, so the complete XPath for the above example is: row:/Report/Table/Row;name:/Report/Table/Row/Value@label;value:/Report/Table/Row/Value

XML Connector for CData Sync

Region

S3ライクなWeb サービスのホスティングリージョン。

解説

S3ライクなWeb サービスのホスティングリージョン。

Oracle Cloud Object Storage のリージョン

値 リージョン
商用クラウドリージョン
ap-hyderabad-1 India South (Hyderabad)
ap-melbourne-1 Australia Southeast (Melbourne)
ap-mumbai-1 India West (Mumbai)
ap-osaka-1 Japan Central (Osaka)
ap-seoul-1 South Korea Central (Seoul)
ap-sydney-1 Australia East (Sydney)
ap-tokyo-1 Japan East (Tokyo)
ca-montreal-1 Canada Southeast (Montreal)
ca-toronto-1 Canada Southeast (Toronto)
eu-amsterdam-1 Netherlands Northwest (Amsterdam)
eu-frankfurt-1 Germany Central (Frankfurt)
eu-zurich-1 Switzerland North (Zurich)
me-jeddah-1 Saudi Arabia West (Jeddah)
sa-saopaulo-1 Brazil East (Sao Paulo)
uk-london-1 UK South (London)
us-ashburn-1 (default) US East (Ashburn, VA)
us-phoenix-1 US West (Phoenix, AZ)
US Gov FedRAMP High Regions
us-langley-1 US Gov East (Ashburn, VA)
us-luke-1 US Gov West (Phoenix, AZ)
US Gov DISA IL5 Regions
us-gov-ashburn-1 US DoD East (Ashburn, VA)
us-gov-chicago-1 US DoD North (Chicago, IL)
us-gov-phoenix-1 US DoD West (Phoenix, AZ)

Wasabi のリージョン

値 リージョン
eu-central-1 Europe (Amsterdam)
us-east-1 (Default) US East (Ashburn, VA)
us-east-2 US East (Manassas, VA)
us-west-1 US West (Hillsboro, OR)

XML Connector for CData Sync

ProjectId

Google Cloud Storage インスタンスが存在するプロジェクトのId。

解説

Google Cloud Storage インスタンスが存在するプロジェクトのId。この値は、Google Cloud コンソールにアクセスして左上画面のプロジェクト名をクリックすると確認できます。ProjectId は一致するプロジェクトのId カラムに表示されます。

XML Connector for CData Sync

OracleNamespace

使用するOracle Cloud Object Storage ネームスペース。

解説

使用するOracle Cloud Object Storage ネームスペース。リクエストを行う前に、この設定をOracle Cloud アカウントに関連付けられてたOracle Cloud Object Storage ネームスペースに設定する必要があります。お使いのアカウントのObject Storage ネームスペースを検索する方法については、Oracle Cloud ドキュメントのUnderstanding Object Storage Namespaces ページを参照してください。

XML Connector for CData Sync

StorageBaseURL

クラウドストレージサービスプロバイダーのURL。

解説

このプロパティは、以下を指定するために使われます。

  • カスタムS3サービスのURL。
  • SharePoint SOAP / REST クラウドストレージサービスプロバイダーに必要なURL。

    このオプションのドメインが-my で終わる場合(例えば、https://bigcorp-my.sharepoint.com)、sp:// またはsprest:// スキームの代わりに onedrive:// スキームを使用する必要がある場合があります。

XML Connector for CData Sync

SimpleUploadLimit

この設定はしきい値をバイト単位で設定します。このしきい値を超えると、provider は1つのリクエストですべてをアップロードするのではなく、マルチパートでアップロードを実行します。

解説

この設定はしきい値をバイト単位で設定します。このしきい値を超えると、Sync App は1つのリクエストですべてをアップロードするのではなく、マルチパートでアップロードを実行します。

XML Connector for CData Sync

UseVirtualHosting

True(デフォルト)の場合、バケットはホスト形式のリクエストを使用してリクエストで参照されます:http://yourbucket.s3.amazonaws.com/yourobject。False に設定した場合、Bean はパス形式のリクエストを使用します:http://s3.amazonaws.com/yourbucket/yourobject。S3ベースのカスタムサービスの場合、CustomURL が指定されていると、このプロパティはFalse に設定されることに注意してください。

解説

True(デフォルト)の場合、バケットはホスト形式のリクエストを使用してリクエストで参照されます:http://yourbucket.s3.amazonaws.com/yourobject。False に設定した場合、Bean はパス形式のリクエストを使用します:http://s3.amazonaws.com/yourbucket/yourobject。S3ベースのカスタムサービスの場合、CustomURL が指定されていると、このプロパティはFalse に設定されることに注意してください。

XML Connector for CData Sync

UseLakeFormation

このプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

解説

このプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

XML Connector for CData Sync

AWS Authentication

このセクションでは、本プロバイダーの接続文字列で設定可能なAWS Authentication プロパティの全リストを提供します。


プロパティ説明
AWSAccessKeyAWS アカウントのアクセスキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSSecretKeyAWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSRoleARN認証時に使用するロールのAmazon リソースネーム。
AWSPrincipalARNAWS アカウントのSAML ID プロバイダーのARN。
AWSRegionAmazon Web サービスのホスティングリージョン。
AWSCredentialsFile認証に使用するAWS クレデンシャルファイルへのパス。
AWSCredentialsFileProfile提供されたAWSCredentialsFile から使用されるプロファイルの名前。
AWSSessionTokenAWS のセッショントークン。
AWSExternalId他のアカウントでロールを引き受ける際に必要となる一意の識別子。
MFASerialNumberMFA デバイスが使用されている場合は、そのシリアル番号。
MFATokenMFA デバイスから利用できる一時トークン。
TemporaryTokenDuration一時トークンが持続する時間(秒単位)。
ServerSideEncryption有効にすると、Amazon S3バケットへのファイルアップロードがサーバー側で暗号化されます。
SSEContextA BASE64-encoded UTF-8 string holding JSON which represents a string-string (key-value) map.
SSEEnableS3BucketKeysConfiguration to use an S3 Bucket Key at the object level when encrypting data with AWS KMS. Enabling this will reduce the cost of server-side encryption by lowering calls to AWS KMS.
SSEKeyA symmetric encryption KeyManagementService key, that is used to protect the data when using ServerSideEncryption.
XML Connector for CData Sync

AWSAccessKey

AWS アカウントのアクセスキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

解説

AWS アカウントのアクセスキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

  1. ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択し、表示されたメニューで[My Security Credentials]を選択します。
  3. [Continue to Security Credentials]をクリックし、[Access Keys]セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。

XML Connector for CData Sync

AWSSecretKey

AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

解説

AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

  1. ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択し、表示されたメニューで[My Security Credentials]を選択します。
  3. [Continue to Security Credentials]をクリックし、[Access Keys]セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。

XML Connector for CData Sync

AWSRoleARN

認証時に使用するロールのAmazon リソースネーム。

解説

AWS の外部で認証する場合は、AWS アカウント認証情報ではなく、ロールを認証に使用するのが 一般的です。AWSRoleARN を入力すると、CData Sync App はAWSAccessKey とAWSSecretKey を直接 使用する代わりに、ロールベースの認証を実行します。この認証を実行するためには、AWSAccessKey と AWSSecretKey を指定する必要があります。RoleARN を設定するときは、AWS ルートユーザーの 認証情報を使用できません。AWSAccessKey およびAWSSecretKey はIAM ユーザーのものである必要があります。

XML Connector for CData Sync

AWSPrincipalARN

AWS アカウントのSAML ID プロバイダーのARN。

解説

AWS アカウントのSAML ID プロバイダーのARN。

XML Connector for CData Sync

AWSRegion

Amazon Web サービスのホスティングリージョン。

解説

Amazon Web サービスのホスティングリージョン。利用可能な値はOHIO、NORTHERNVIRGINIA、NORTHERNCALIFORNIA、OREGON、CAPETOWN、HONGKONG、JAKARTA、MUMBAI、OSAKA、SEOUL、SINGAPORE、SYDNEY、TOKYO、CENTRAL、BEIJING、NINGXIA、FRANKFURT、IRELAND、LONDON、MILAN、PARIS、STOCKHOLM、ZURICH、BAHRAIN、UAE、SAOPAULO、GOVCLOUDEAST、GOVCLOUDWEST です。

XML Connector for CData Sync

AWSCredentialsFile

認証に使用するAWS クレデンシャルファイルへのパス。

解説

認証に使用するAWS クレデンシャルファイルへのパス。詳しくは、https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html を参照してください。

XML Connector for CData Sync

AWSCredentialsFileProfile

提供されたAWSCredentialsFile から使用されるプロファイルの名前。

解説

提供されたAWSCredentialsFile から使用されるプロファイルの名前。詳しくは、https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html を参照してください。

XML Connector for CData Sync

AWSSessionToken

AWS のセッショントークン。

解説

AWS のセッショントークン。この値はさまざまな方法で取得できます。詳しくは、this link を参照してください。

XML Connector for CData Sync

AWSExternalId

他のアカウントでロールを引き受ける際に必要となる一意の識別子。

解説

他のアカウントでロールを引き受ける際に必要となる一意の識別子。

XML Connector for CData Sync

MFASerialNumber

MFA デバイスが使用されている場合は、そのシリアル番号。

解説

AWS マネジメントコンソールにアクセスしてユーザーのセキュリティ認証情報を表示することで、IAM ユーザーのデバイスを見つけることができます。 仮想デバイスの場合、これは実際にはAmazon リソースネームです( arn:aws:iam::123456789012:mfa/user など)。

XML Connector for CData Sync

MFAToken

MFA デバイスから利用できる一時トークン。

解説

MFA が必要な場合、この値はログインのためのテンポラリクレデンシャルを取得するためにMFASerialNumber とともに使用されます。 AWS から入手可能な一時的な認証情報はデフォルトで最長1時間しか持続しません(TemporaryTokenDuration を参照してください)。時間が経過したら、新しい認証情報を取得できるように、接続を 更新して新しいMFA トークンを指定する必要があります。 %AWSpSecurityToken; %AWSpTemporaryTokenDuration;

XML Connector for CData Sync

TemporaryTokenDuration

一時トークンが持続する時間(秒単位)。

解説

一時トークンは、MFA 認証とロールベース認証の両方で使用されます。一時トークンは、やがてタイムアウトします。 そのときには、新しい一時トークンを取得する必要があります。MFA が使用されていない状況では、これは大したこと ではありません。一時トークンが期限切れになると、CData Sync App は内部的に新しい一時トークンをリクエストします。

ただし、MFA が必要な接続の場合は、新しい一時トークンを取得するために新しいMFAToken を接続で指定 する必要があります。これは、ユーザーによる接続の更新が必要になるため、より煩わしい問題です。指定できる 最大値と最小値は、使用されている接続によって大きく異なります。

ロールベース認証の場合は、最小期間は900秒(15分)で、最大期間は3600秒(1時間)です。 ロールベース認証でMFA が使用されている場合でも、3600秒が依然として最大です。

MFA 認証自体では(IAM ユーザーまたはルートユーザーを使用)、最小値は900秒(15分)、 最大値は129600(36時間)です。

XML Connector for CData Sync

ServerSideEncryption

有効にすると、Amazon S3バケットへのファイルアップロードがサーバー側で暗号化されます。

解説

サーバー側の暗号化とは、データを受信するアプリケーションまたはサービスによって、送信先でデータを暗号化することです。Amazon S3は、データセンターのディスクに書き込まれるときにデータをオブジェクトレベルで暗号化し、ユーザーがデータにアクセスするときに復号します。詳しくは、こちらを参照してください。https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/serv-side-encryption.html

XML Connector for CData Sync

SSEContext

A BASE64-encoded UTF-8 string holding JSON which represents a string-string (key-value) map.

解説

Example of what the JSON may look decoded: {"aws:s3:arn": "arn:aws:s3:::_bucket_/_object_"}.

XML Connector for CData Sync

SSEEnableS3BucketKeys

Configuration to use an S3 Bucket Key at the object level when encrypting data with AWS KMS. Enabling this will reduce the cost of server-side encryption by lowering calls to AWS KMS.

解説

Configuration to use an S3 Bucket Key at the object level when encrypting data with AWS KMS. Enabling this will reduce the cost of server-side encryption by lowering calls to AWS KMS.

XML Connector for CData Sync

SSEKey

A symmetric encryption KeyManagementService key, that is used to protect the data when using ServerSideEncryption.

解説

A symmetric encryption KeyManagementService key, that is used to protect the data when using ServerSideEncryption.

XML Connector for CData Sync

Azure Authentication

このセクションでは、本プロバイダーの接続文字列で設定可能なAzure Authentication プロパティの全リストを提供します。


プロパティ説明
AzureStorageAccountAzure ストレージアカウント名。
AzureAccessKeyAzure アカウントに関連付けられているストレージキー。
AzureSharedAccessSignature認証に使用可能な共有アクセスキー署名。
AzureTenantデータにアクセスするために使用されるMicrosoft Online テナント。指定しない場合は、デフォルトのテナントが使用されます。
AzureEnvironment接続を確立するときに使用するAzure 環境。
XML Connector for CData Sync

AzureStorageAccount

Azure ストレージアカウント名。

解説

Azure ストレージアカウントの名前。

XML Connector for CData Sync

AzureAccessKey

Azure アカウントに関連付けられているストレージキー。

解説

XML アカウントに関連付けられているストレージキー。以下のように取得できます:

  1. ルートアカウントの資格情報を使用してAzure ポータルにサインインします。(https://portal.azure.com/)
  2. ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
  3. 設定で[アクセスキー]をクリックします。
  4. ページ上にストレージアカウント名とキーが表示されます。

XML Connector for CData Sync

AzureSharedAccessSignature

認証に使用可能な共有アクセスキー署名。

解説

共有アクセス署名。以下の手順で作成することができます。

  1. ルートアカウントの資格情報を使用してAzure ポータルにサインインします。(https://portal.azure.com/)
  2. ストレージアカウントをクリックして、使用するストレージアカウントを選択します。
  3. 設定で[Shared Access Signature]をクリックします。
  4. 権限およびトークンの有効期限を設定します。
  5. [Generate SAS]をクリックするとトークンをコピーできます。

XML Connector for CData Sync

AzureTenant

データにアクセスするために使用されるMicrosoft Online テナント。指定しない場合は、デフォルトのテナントが使用されます。

解説

データにアクセスするために使用されるMicrosoft Online テナント。例えば、contoso.onmicrosoft.com です。あるいは、 テナントId を指定します。この値は[Azure ポータル]->[Azure Active Directory]->[プロパティ]のディレクトリId です。

通常、Tenant を指定する必要はありません。OAuthGrantType をCODE(デフォルト)に設定している場合は、Microsoft が自動的に決定します。 ただし、ユーザーがマルチテナントに所属している場合は失敗する可能性があります。 例えば、ドメインA の管理者がドメインB のユーザーをゲストユーザーとして招待した場合。ユーザーは両方のテナントに属していることになります。 Tenant を指定するのはグッドプラクティスですが、一般的には指定しなくてもうまく動作するはずです。

OAuthGrantType をCLIENT に設定する場合は、AzureTenant が必須です。クライアント資格情報を使用する場合、ユーザーコンテキストはありません。 資格情報は、アプリ自体のコンテキストから取得されます。Microsoft ではTenant を指定せずにクライアント資格情報を取得することを許容していますが、使用する特定のテナントを選択する可能性ははるかに低くなっています。 このため、接続するドメインに適用される資格情報を確実に取得するために、すべてのクライアント資格情報接続に対してAzureTenant を明示的に指定する必要があります。

XML Connector for CData Sync

AzureEnvironment

接続を確立するときに使用するAzure 環境。

解説

ほとんどの場合、環境をグローバルに設定したままにしておくとうまく機能します。ただし、 Azure アカウントが別の環境に追加されている場合は、AzureEnvironment を使用してどの環境かを 指定できます。利用可能な値はGLOBAL、CHINA、USGOVT、USGOVTDOD です。

XML Connector for CData Sync

SSO

このセクションでは、本プロバイダーの接続文字列で設定可能なSSO プロパティの全リストを提供します。


プロパティ説明
SSOLoginURLID プロバイダーのログインURL。
SSOPropertiesセミコロンで区切られたID プロバイダーへの接続に必要な追加プロパティ。
SSOExchangeUrlSAML 応答を処理してサービスの資格情報と交換するために使用するURL。
XML Connector for CData Sync

SSOLoginURL

ID プロバイダーのログインURL。

解説

ID プロバイダーのログインURL。

XML Connector for CData Sync

SSOProperties

セミコロンで区切られたID プロバイダーへの接続に必要な追加プロパティ。

解説

セミコロンで区切られたID プロバイダーへの接続に必要な追加プロパティ。SSOLoginURL と一緒に使われます。

SSO 設定については、 で詳しく説明します。

XML Connector for CData Sync

SSOExchangeUrl

SAML 応答を処理してサービスの資格情報と交換するために使用するURL。

解説

CData Sync App はここで指定されたURL を使用してSAML 応答を処理し、サービスの資格情報と交換します。 取得した資格情報はSSO 接続時の最後の情報であり、XML との通信に使用されます。

XML Connector for CData Sync

OAuth

このセクションでは、本プロバイダーの接続文字列で設定可能なOAuth プロパティの全リストを提供します。


プロパティ説明
OAuthVersion使われているOAuth のバージョン。
OAuthClientIdOAuth 認証サーバーを使用してアプリケーションを登録する場合に割り当てられたクライアントId。
OAuthClientSecretOAuth 認証サーバーにアプリケーションを登録する場合に割り当てられたクライアントシークレット。
Scope初期アクセストークンとリフレッシュトークンを取得するスコープを指定します。
OAuthGrantTypeOAuth フローのグラント種別。
OAuthPasswordGrantModeOAuthGrantType がPassword に設定されている場合のクライアントId とクライアントシークレットの渡し方。
OAuthIncludeCallbackURLアクセストークンリクエストにコールバックURL を含めるかどうか。
OAuthAuthorizationURLOAuth サービスの認可URL。
OAuthAccessTokenURLOAuth アクセストークンを取得するURL。
OAuthRefreshTokenURLOAuth トークンをリフレッシュするURL。
OAuthRequestTokenURLサービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。
AuthTokenOAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。
AuthKeyOAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。
OAuthParamsOAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。
XML Connector for CData Sync

OAuthVersion

使われているOAuth のバージョン。

解説

使われているOAuth のバージョン。次のオプションが利用可能です:1.0,2.0

XML Connector for CData Sync

OAuthClientId

OAuth 認証サーバーを使用してアプリケーションを登録する場合に割り当てられたクライアントId。

解説

OAuth アプリケーションの登録の一環として、コンシューマキーとも呼ばれるOAuthClientId 値、およびクライアントシークレットOAuthClientSecret が提供されます。

XML Connector for CData Sync

OAuthClientSecret

OAuth 認証サーバーにアプリケーションを登録する場合に割り当てられたクライアントシークレット。

解説

OAuth アプリケーションの登録の一環として、コンシューマキーとも呼ばれるOAuthClientId が提供されます。また、コンシューマーシークレットと呼ばれるクライアントシークレットも提供されます。クライアントシークレットをOAuthClientSecret プロパティに設定します。

XML Connector for CData Sync

Scope

初期アクセストークンとリフレッシュトークンを取得するスコープを指定します。

解説

初期アクセストークンとリフレッシュトークンを取得するスコープを指定します。

初期アクセストークンとリフレッシュトークンを取得するスコープを指定します。

XML Connector for CData Sync

OAuthGrantType

OAuth フローのグラント種別。

解説

次のオプションが利用可能です:CODE,CLIENT,PASSWORD

XML Connector for CData Sync

OAuthPasswordGrantMode

OAuthGrantType がPassword に設定されている場合のクライアントId とクライアントシークレットの渡し方。

解説

OAuth RFC では、Password OAuthGrantType を使用する際にOAuthClientId とOAuthClientSecret を渡す2つの方法を指定します。 最も一般的な方法は、post データを介してサービスに渡す方法です。しかし、一部のサービスでは、BASIC 認証で使用するためにAuthorize ヘッダーを介して渡すことを要求する場合があります。 このプロパティをBasic に変更すると、パラメータをpost データではなくAuthorize ヘッダーの一部として送信します。

XML Connector for CData Sync

OAuthIncludeCallbackURL

アクセストークンリクエストにコールバックURL を含めるかどうか。

解説

デフォルトではtrue です。 標準に準拠したOAuth サービスでは、redirect_uri パラメータを必要としないCLIENT やPASSWORD などのグラント種別では、 redirect_uri パラメータを無視するからです。

このオプションは、redirect_uri が含まれる場合にエラーを報告するOAuth サービスに対してのみ有効にしてください。

XML Connector for CData Sync

OAuthAuthorizationURL

OAuth サービスの認可URL。

解説

OAuth サービスの認可URL。このURL でユーザーはサーバーにログインしてアプリケーションにアクセス許可を与えます。OAuth 1.0 では、アクセス許可が付与されるとリクエストトークンが認可されます。

XML Connector for CData Sync

OAuthAccessTokenURL

OAuth アクセストークンを取得するURL。

解説

OAuth アクセストークンを取得するURL。OAuth 1.0 では、このURL で認可されたリクエストトークンがアクセストークンと交換されます。

XML Connector for CData Sync

OAuthRefreshTokenURL

OAuth トークンをリフレッシュするURL。

解説

OAuth トークンをリフレッシュするURL。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンと新しいアクセストークンと交換します。

XML Connector for CData Sync

OAuthRequestTokenURL

サービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。

解説

サービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。

XML Connector for CData Sync

AuthToken

OAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。

解説

このプロパティは、OAuth 1.0でヘッドレス認証を実行する場合にのみ必要です。これは、GetOAuthAuthorizationUrl ストアドプロシージャから取得できます。

GetOAuthAccessToken ストアドプロシージャでAuthKey とともに指定して、OAuthAccessToken を取得できます。

XML Connector for CData Sync

AuthKey

OAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。

解説

このプロパティは、OAuth 1.0でヘッドレス認証を実行する場合にのみ必要です。これは、GetOAuthAuthorizationUrl ストアドプロシージャから取得できます。

GetOAuthAccessToken ストアドプロシージャでAuthToken とともに指定して、OAuthAccessToken を取得できます。

XML Connector for CData Sync

OAuthParams

OAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。

解説

OAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。

XML Connector for CData Sync

JWT OAuth

このセクションでは、本プロバイダーの接続文字列で設定可能なJWT OAuth プロパティの全リストを提供します。


プロパティ説明
OAuthJWTCertJWT 証明書のストア。
OAuthJWTCertTypeJWT 証明書を格納するキーストアの種類。
OAuthJWTCertPasswordOAuth JWT 証明書のパスワード。
OAuthJWTCertSubjectOAuth JWT 証明書のサブジェクト。
OAuthJWTAudienceJWT を使用できるエンティティのスペース区切りリスト。
OAuthJWTValidityTimeJWT の有効期限(秒)。
XML Connector for CData Sync

OAuthJWTCert

JWT 証明書のストア。

解説

クライアント証明書のための証明書ストア名。

OAuthJWTCertType フィールドは、OAuthJWTCert により指定された証明書ストアの種類を指定します。 ストアがパスワードで保護されている場合は、OAuthJWTCertPassword でパスワードを指定します。

OAuthJWTCert は、OAuthJWTCertSubject フィールドとともにクライアント証明書を指定するために使われます。 OAuthJWTCert に値がある場合で、OAuthJWTCertSubject が設定されている場合は、証明書の検索が始まります。 詳しくは、OAuthJWTCertSubject フィールドを参照してください。

証明書ストアの指定はプラットフォームに依存します。

Windows の共通のユーザとシステム証明書ストアの指定は以下のとおりです。

MY個人証明書と関連付けられた秘密キーを格納している証明書ストア。
CA証明機関の証明書。
ROOTルート証明書。
SPCソフトウェア発行元証明書。

Javaでは、証明書ストアは通常、証明書および任意の秘密キーを含むファイルです。

証明書ストアの種類がPFXFile の場合は、このプロパティにファイル名を設定します。 PFXBlob の場合は、このプロパティをPFX ファイルのバイナリコンテンツ(例えば、PKCS12証明書ストア)に設定する必要があります。

XML Connector for CData Sync

OAuthJWTCertType

JWT 証明書を格納するキーストアの種類。

解説

このプロパティには次の値の一つを設定できます。

USERWindows の場合、現在のユーザーにより所有された証明書ストアであることを指定します。 Note:この種類はJava では利用できません。
MACHINEWindows の場合、この証明書ストアがシステムストアであることを指定します。 Note:この種類はJava では利用できません。
PFXFILEこの証明書ストアは、証明書を含むPFX(PKCS12)ファイルの名前です。
PFXBLOBこの証明書ストアは、PFX(PKCS12)形式の証明書ストアを表すBase-64でエンコードされた文字列です。
JKSFILEこの証明書ストアは、証明書を含むJava key store(JKS)ファイルの名前です。 Note:この種類はJava のみで利用できます。
JKSBLOBこの証明書ストアは、Java key store(JKS)形式の証明書ストアを表すBase-64でエンコードされた文字列です。 Note:この種類はJava のみで利用できます。
PEMKEY_FILEこの証明書ストアは、秘密キーと任意の証明書を含むPEM でエンコードされたファイルの名前です。
PEMKEY_BLOBこの証明書ストアは、秘密キーと任意の証明書を含むBase-64でエンコードされた文字列です。
PUBLIC_KEY_FILEこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むファイルの名前です。
PUBLIC_KEY_BLOBこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むBase-64でエンコードされた文字列です。
SSHPUBLIC_KEY_FILEこの証明書ストアは、SSH 公開キーを含むファイルの名前です。
SSHPUBLIC_KEY_BLOBこの証明書ストアは、SSH 公開キーを含むBase-64でエンコードされた文字列です。
P7BFILEこの証明書ストアは、証明書を含むPKCS7 ファイルの名前です。
PPKFILEこの証明書ストアは、PuTTY 秘密キー(PPK)を含むファイルの名前です。
XMLFILEこの証明書ストアは、XML 形式の証明書を含むファイルの名前です。
XMLBLOBこの証明書ストアは、XML 形式の証明書を含む文字列の名前です。
GOOGLEJSONこの証明書ストアは、サービスアカウント情報を含むJSON ファイルの名前です。Google サービスに接続する場合にのみ有効です。
GOOGLEJSONBLOBこの証明書ストアは、サービスアカウントのJSON を含む文字列です。Google サービスに接続する場合にのみ有効です。

XML Connector for CData Sync

OAuthJWTCertPassword

OAuth JWT 証明書のパスワード。

解説

証明書ストアでパスワードが必要である場合、このプロパティを使用してパスワードを指定し、証明書ストアにアクセスできます。

GOOGLEJSON OAuthJWTCertType を使用する場合は必要ありません。Google JSON キーは暗号化されていません。

XML Connector for CData Sync

OAuthJWTCertSubject

OAuth JWT 証明書のサブジェクト。

解説

証明書のサブジェクトは、証明書をロードするときにストア内の証明書を検索するために使用されます。

完全に一致するものが見つからない場合、ストアはプロパティの値を含むサブジェクトを検索します。

それでも一致するものが見つからない場合、プロパティは空白で設定され、証明書は選択されません。

"*" に設定すると、証明書ストアの1番目の証明書が選択されます。

証明書のサブジェクトは識別の名前フィールドおよび値のカンマ区切りのリストです。 例えば、"CN=www.server.com, OU=test, C=US, [email protected]"。共通のフィールドとその説明は以下のとおりです。

フィールド説明
CN共通名。一般的には、www.server.com のようなホスト名です。
O法人名
OU法人の部署名
L法人の住所(市町村名)
S法人の住所(都道府県)
C国名
EEメールアドレス

フィールド値にカンマが含まれている場合は、それを引用符で囲む必要があります。

XML Connector for CData Sync

OAuthJWTAudience

JWT を使用できるエンティティのスペース区切りリスト。

解説

これはJWT のaud フィールドに相当します。 このリストの項目は通常URL ですが、正確な値は使用するAPI に依存します。

XML Connector for CData Sync

OAuthJWTValidityTime

JWT の有効期限(秒)。

解説

これはJWT のexp フィールドの算出に使用されます。 デフォルトでは3600に設定されており、これはJWT が生成されてから1時間有効であることを意味します。 API によっては、これより低い値を要求するものもあります。

XML Connector for CData Sync

Kerberos

このセクションでは、本プロバイダーの接続文字列で設定可能なKerberos プロパティの全リストを提供します。


プロパティ説明
KerberosKDCユーザーの認証で使用されるKerberos キー配布センター(KDC)サービス。
KerberosRealmユーザー認証に使用されるKerberos 領域。
KerberosSPNKerberos ドメインコントローラーのサービスプリンシパル名(SPN)。
KerberosKeytabFileKerberos プリンシパルと暗号化されたキーのペアを含むKeytab ファイル。
KerberosServiceRealmサービスのKerberos レルム。
KerberosServiceKDCサービスのKerberos KDC。
KerberosTicketCacheMIT Kerberos 資格情報キャッシュファイルへのフルパス。
XML Connector for CData Sync

KerberosKDC

ユーザーの認証で使用されるKerberos キー配布センター(KDC)サービス。

解説

Kerberos のプロパティは、SPNEGO またはWindows 認証を使用する場合に使用されます。Sync App は、Kerberos KDC サービスにセッションチケットと一時セッションキーを要求します。Kerberos KDC サービスは、通常、ドメインコントローラーと同じコンピュータに置かれています。

Kerberos KDC が指定されていない場合、Sync App は、これらのプロパティを自動的に次の場所から検出しようとします。

  • KRB5 Config File (krb5.ini/krb5.conf): KRB5_CONFIG 環境変数が設定され、ファイルが存在する場合、Sync App は指定されたファイルからKDC を取得します。それ以外の場合は、OS に基づいてデフォルトのMIT ロケーションからの読み取りを試みます:C:\ProgramData\MIT\Kerberos5\krb5.ini (Windows) または/etc/krb5.conf (Linux)。
  • ドメイン名およびホスト: Kerberos 領域およびKerberos KDC が別の場所から推測できなかった場合、Sync App は設定されているドメイン名およびホストからそれらを推測します。

XML Connector for CData Sync

KerberosRealm

ユーザー認証に使用されるKerberos 領域。

解説

Kerberos のプロパティは、SPNEGO またはWindows 認証を使用する場合に使用されます。Kerberos 領域は、Kerberos キー配布センター(KDC)サービスを使用してユーザーを認証するために使用されます。Kerberos 領域は、管理者が任意の文字列に設定できますが、通常はドメイン名に基づいて設定されます。

Kerberos 領域が指定されていない場合、Sync App は、これらのプロパティを自動的に次の場所から検出しようとします。

  • KRB5 Config File (krb5.ini/krb5.conf): KRB5_CONFIG 環境変数が設定され、ファイルが存在する場合、Sync App は指定されたファイルからデフォルトレルムを取得します。それ以外の場合は、OS に基づいてデフォルトのMIT ロケーションからの読み取りを試みます:C:\ProgramData\MIT\Kerberos5\krb5.ini (Windows) または/etc/krb5.conf (Linux)
  • ドメイン名およびホスト: Kerberos 領域およびKerberos KDC が別の場所から推測できなかった場合、Sync App はユーザー設定されているドメイン名およびホストからそれらを推測します。これは、一部のWindows 環境で機能します。

XML Connector for CData Sync

KerberosSPN

Kerberos ドメインコントローラーのサービスプリンシパル名(SPN)。

解説

Kerberos ドメインコントローラーのSPN が認証先のURL と異なる場合は、このプロパティを使用してSPN を設定します。

XML Connector for CData Sync

KerberosKeytabFile

Kerberos プリンシパルと暗号化されたキーのペアを含むKeytab ファイル。

解説

Kerberos のプリンシパルと暗号化されたキーのペアを含むKeytab ファイル。

XML Connector for CData Sync

KerberosServiceRealm

サービスのKerberos レルム。

解説

KerberosServiceRealm は、クロスレルムKerberos 認証を使用するときにサービスKerberos レルムを指定するために使われます。

ほとんどの場合、単一のレルムとKDC マシンがKerberos 認証を実行するために使用され、このプロパティは必要ありません。

このプロパティは、異なるレルムとKDC マシンを使用して認証チケット(AS リクエスト)およびサービスチケット(TGS リクエスト)を取得する、より複雑な設定で使用できます。

XML Connector for CData Sync

KerberosServiceKDC

サービスのKerberos KDC。

解説

KerberosServiceKDC は、クロスレルムKerberos 認証を使用するときにサービスKerberos KDC を指定するために使われます。

ほとんどの場合、単一のレルムとKDC マシンがKerberos 認証を実行するために使用され、このプロパティは必要ありません。

このプロパティは、異なるレルムとKDC マシンを使用して認証チケット(AS リクエスト)およびサービスチケット(TGS リクエスト)を取得する、より複雑な設定で使用できます。

XML Connector for CData Sync

KerberosTicketCache

MIT Kerberos 資格情報キャッシュファイルへのフルパス。

解説

このプロパティは、MIT Kerberos チケットマネージャーまたはkinit コマンドを使用して作成された資格情報キャッシュファイルを使用する場合に設定できます。

XML Connector for CData Sync

SSL

このセクションでは、本プロバイダーの接続文字列で設定可能なSSL プロパティの全リストを提供します。


プロパティ説明
SSLClientCertSSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストア。
SSLClientCertTypeTLS/SSL クライアント証明書を格納するキーストアの種類。
SSLClientCertPasswordTLS/SSL クライアント証明書のパスワード。
SSLClientCertSubjectTLS/SSL クライアント証明書のサブジェクト。
SSLModeFTP またはFTPS サーバーに接続する際の認証メカニズム。
SSLServerCertTLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。
XML Connector for CData Sync

SSLClientCert

SSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストア。

解説

クライアント証明書のための証明書ストア名。

SSLClientCertType フィールドは、SSLClientCert により指定された証明書ストアの種類を指定します。ストアがパスワードで保護されている場合は、SSLClientCertPassword でパスワードを指定します。

SSLClientCert は、SSLClientCertSubject フィールドとともにクライアント証明書を指定するために使われます。SSLClientCert に値がある場合で、SSLClientCertSubject が設定されている場合は、証明書の検索が始まります。詳しくは、SSLClientCertSubject を参照してください。

証明書ストアの指定はプラットフォームに依存します。

Windows の共通のユーザとシステム証明書ストアの指定は以下のとおりです。

MY個人証明書と関連付けられた秘密キーを格納している証明書ストア。
CA証明機関の証明書。
ROOTルート証明書。
SPCソフトウェア発行元証明書。

Javaでは、証明書ストアは通常、証明書および任意の秘密キーを含むファイルです。

証明書ストアの種類がPFXFile の場合は、このプロパティにファイル名を設定します。PFXBlob の場合は、このプロパティをPFX ファイルのバイナリコンテンツ(例えば、PKCS12証明書ストア)に設定する必要があります。

XML Connector for CData Sync

SSLClientCertType

TLS/SSL クライアント証明書を格納するキーストアの種類。

解説

このプロパティには次の値の一つを設定できます。

USER - デフォルトWindows の場合、現在のユーザーにより所有された証明書ストアであることを指定します。この種類はJava では利用できませんので注意してください。
MACHINEWindows の場合、この証明書ストアがシステムストアであることを指定します。この種類はJava では利用できませんので注意してください。
PFXFILEこの証明書ストアは、証明書を含むPFX(PKCS12)ファイルの名前です。
PFXBLOBこの証明書ストアは、PFX(PKCS12)形式の証明書ストアを表すBase-64でエンコードされた文字列です。
JKSFILEこの証明書ストアは、証明書を含むJava key store(JKS)ファイルの名前です。この種類はJava でのみ利用できますので注意してください。
JKSBLOBこの証明書ストアは、Java key store(JKS)形式の証明書ストアを表すBase-64でエンコードされた文字列です。この種類はJava でのみ利用できますので注意してください。
PEMKEY_FILEこの証明書ストアは、秘密キーと任意の証明書を含むPEM でエンコードされたファイルの名前です。
PEMKEY_BLOBこの証明書ストアは、秘密キーと任意の証明書を含むBase-64でエンコードされた文字列です。
PUBLIC_KEY_FILEこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むファイルの名前です。
PUBLIC_KEY_BLOBこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むBase-64でエンコードされた文字列です。
SSHPUBLIC_KEY_FILEこの証明書ストアは、SSH 公開キーを含むファイルの名前です。
SSHPUBLIC_KEY_BLOBこの証明書ストアは、SSH 公開キーを含むBase-64でエンコードされた文字列です。
P7BFILEこの証明書ストアは、証明書を含むPKCS7 ファイルの名前です。
PPKFILEこの証明書ストアは、PuTTY 秘密キー(PPK)を含むファイルの名前です。
XMLFILEこの証明書ストアは、XML 形式の証明書を含むファイルの名前です。
XMLBLOBこの証明書ストアは、XML 形式の証明書を含む文字列の名前です。

XML Connector for CData Sync

SSLClientCertPassword

TLS/SSL クライアント証明書のパスワード。

解説

証明書ストアでパスワードが必要である場合、このプロパティを使用してパスワードを指定し、証明書ストアにアクセスできます。

XML Connector for CData Sync

SSLClientCertSubject

TLS/SSL クライアント証明書のサブジェクト。

解説

証明書のサブジェクトは、証明書をロードするときにストア内の証明書を検索するために使用されます。

完全に一致するものが見つからない場合、ストアはプロパティの値を含むサブジェクトを検索します。それでも一致するものが見つからない場合、プロパティは空白で設定され、証明書は選択されません。

"*" に設定すると、証明書ストアの1番目の証明書が選択されます。

証明書のサブジェクトは識別の名前フィールドおよび値のカンマ区切りのリストです。例えば、"CN=www.server.com, OU=test, C=US, [email protected]" です。共通のフィールドとその説明は以下のとおりです。

フィールド説明
CN共通名。一般的には、www.server.com のようなホスト名です。
O法人名
OU法人の部署名
L法人の住所(市町村名)
S法人の住所(都道府県)
C国名
EEメールアドレス

フィールド値にカンマが含まれている場合は、それを引用符で囲む必要があります。

XML Connector for CData Sync

SSLMode

FTP またはFTPS サーバーに接続する際の認証メカニズム。

解説

SSLMode がNONE に設定されている場合、サーバーへのログインには、デフォルトのプレーンテキストでの認証が使われます。 SSLMode がIMPLICIT に設定されている場合、接続が確立された直後にSSL ネゴシエーションが開始されます。 SSLMode がEXPLICIT に設定されている場合、Sync App は最初にプレーンテキストで接続し、次にSTARTTLS などのプロトコルコマンドを使用してSSL ネゴシエーションを明示的に開始します。 SSLMode がAUTOMATIC に設定されている場合、リモートポートがプロトコルの標準のプレーンテキストポート(適用可能な場所)に設定されている場合、コンポーネントはSSLMode がEXPLICIT に設定されている場合と同じように動作します。その他すべてのケースでは、SSL ネゴシエーションはIMPLICIT になります。

  • AUTOMATIC
  • NONE
  • IMPLICIT
  • EXPLICIT

XML Connector for CData Sync

SSLServerCert

TLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。

解説

TLS/SSL 接続を使用する場合は、このプロパティを使用して、サーバーが受け入れるTLS/SSL 証明書を指定できます。コンピュータによって信頼されていない他の証明書はすべて拒否されます。

このプロパティは、次のフォームを取ります:

説明 例
フルPEM 証明書(例では省略されています) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
証明書を保有するローカルファイルへのパス。 C:\cert.cer
公開鍵(例では省略されています) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
MD5 Thumbprint (hex 値はスペースおよびコロン区切り) ecadbdda5a1529c58a1e9e09828d70e4
SHA1 Thumbprint (hex 値はスペースおよびコロン区切り) 34a929226ae0819f2ec14b4a3d904f801cbb150d

これを指定しない場合は、マシンが信用するすべての証明書が受け入れられます。

すべての証明書の受け入れを示すには、'*'を使用します。セキュリティ上の理由から、これはお勧めできません。

XML Connector for CData Sync

SSH

このセクションでは、本プロバイダーの接続文字列で設定可能なSSH プロパティの全リストを提供します。


プロパティ説明
SSHAuthModeサービスへのSSH トンネルを確立する際に使用される認証方法。
SSHClientCertSSHUser の認証に使用する証明書。
SSHClientCertPasswordSSHClientCert キーのパスワード(ある場合)。
SSHClientCertSubjectSSH クライアント証明書のサブジェクト。
SSHClientCertTypeSSHClientCert 秘密鍵の種類。
SSHUserSSH ユーザー。
SSHPasswordSSH パスワード。
XML Connector for CData Sync

SSHAuthMode

サービスへのSSH トンネルを確立する際に使用される認証方法。

解説

  • None:認証は行われません。現在のUser の値は無視され、接続は匿名でログインされます。
  • Password:Sync App は、User とPassword の値を使用してユーザーを認証します。
  • Public_Key:Sync App は、User とSSHClientCert の値を使用してユーザーを認証します。SSHClientCert には、この認証方法を成功させるために使用可能な秘密鍵が必要です。

XML Connector for CData Sync

SSHClientCert

SSHUser の認証に使用する証明書。

解説

公開鍵認証を使用するには、SSHClientCert に有効な秘密鍵が含まれている必要があります。 公開鍵はオプションで、含まれていない場合はSync App が秘密鍵から生成します。 Sync App は公開鍵をサーバーに送信し、ユーザーが公開鍵を認証した場合に接続が許可されます。

SSHClientCertType フィールドは、SSHClientCert により指定されたキーストアの種類を指定します。 ストアがパスワードで保護されている場合は、SSHClientCertPassword でパスワードを指定します。

一部の種類のキーストアは、複数のキーを含むことができるコンテナです。 デフォルトでは、Sync App はストアの最初のキーを選択しますが、SSHClientCertSubject を使用して特定のキーを指定することも可能です。

XML Connector for CData Sync

SSHClientCertPassword

SSHClientCert キーのパスワード(ある場合)。

解説

このプロパティは、SSHAuthMode がPublicKey に設定され、SSHClientCert が秘密鍵に設定されているSFTP サーバーに認証する場合にのみ使用されます。

XML Connector for CData Sync

SSHClientCertSubject

SSH クライアント証明書のサブジェクト。

解説

証明書のサブジェクトは、証明書をロードするときにストア内の証明書を検索するために使用されます。

完全に一致するものが見つからない場合、ストアはプロパティの値を含むサブジェクトを検索します。

それでも一致するものが見つからない場合、プロパティは空白で設定され、証明書は選択されません。

"*" に設定すると、証明書ストアの1番目の証明書が選択されます。

証明書のサブジェクトは識別の名前フィールドおよび値のカンマ区切りのリストです。 例えば、"CN=www.server.com, OU=test, C=US, [email protected]"。共通のフィールドとその説明は以下のとおりです。

フィールド説明
CN共通名。一般的には、www.server.com のようなホスト名です。
O法人名
OU法人の部署名
L法人の住所(市町村名)
S法人の住所(都道府県)
C国名
EEメールアドレス

フィールド値にカンマが含まれている場合は、それを引用符で囲む必要があります。

XML Connector for CData Sync

SSHClientCertType

SSHClientCert 秘密鍵の種類。

解説

このプロパティには次の値の1つを設定できます。

種類説明許容されるBlob 値
MACHINE/USER Blob 値はサポートされていません。
JKSFILE/JKSBLOB base64のみ
PFXFILE/PFXBLOBPKCS12形式(.pfx)のファイル。証明書と秘密鍵の両方を含む必要があります。base64のみ
PEMKEY_FILE/PEMKEY_BLOBPEM 形式のファイル。RSA、DSA、またはOPENSSH の秘密鍵を含む必要があります。オプションで、秘密鍵と一致する証明書を含むことができます。base64またはプレーンテキスト。blob をテキストとして入力する場合、改行をスペースに置き換えることができます。
PPKFILE/PPKBLOBputtygen ツールで作成されたPuTTY 形式の秘密鍵。base64のみ
XMLFILE/XMLBLOB.NET のRSA クラスによって生成される形式のXML キー:RSA.ToXmlString(true)。base64またはプレーンテキスト。

XML Connector for CData Sync

SSHUser

SSH ユーザー。

解説

SSH ユーザー。

XML Connector for CData Sync

SSHPassword

SSH パスワード。

解説

SSH パスワード。

XML Connector for CData Sync

Firewall

このセクションでは、本プロバイダーの接続文字列で設定可能なFirewall プロパティの全リストを提供します。


プロパティ説明
FirewallTypeプロキシベースのファイアウォールで使われるプロトコル。
FirewallServerプロキシベースのファイアウォールの名前もしくはIP アドレス。
FirewallPortプロキシベースのファイアウォールのTCP ポート。
FirewallUserプロキシベースのファイアウォールに認証するために使うユーザー名。
FirewallPasswordプロキシベースのファイアウォールへの認証に使われるパスワード。
XML Connector for CData Sync

FirewallType

プロキシベースのファイアウォールで使われるプロトコル。

解説

このプロパティは、Sync App がFirewallServer プロキシ経由でトンネルトラフィックを使うためのプロトコルを指定します。デフォルトでは、Sync App はシステムプロキシに接続します。この動作を無効化し次のプロキシタイプのどれかで接続するには、ProxyAutoDetect をfalse に設定します。

タイプ デフォルトポート 説明
TUNNEL 80 これが設定されている場合、Sync App はXML への接続を開き、プロキシを経由して通信が行われます。
SOCKS4 1080 これが設定されている場合、Sync App はデータをFirewallServer およびFirewallPort で指定されたSOCS 4 プロキシ経由で送信し、接続リクエストが許容されるかどうかを決定します。
SOCKS5 1080 これが設定されている場合、Sync App はデータをFirewallServer およびFirewallPort で指定されたSOCS 5 プロキシ経由で送信します。プロキシに認証が必要な場合には、FirewallUser およびFirewallPassword をプロキシが認識する認証情報に設定します。

HTTP プロキシへの接続には、ProxyServer およびProxyPort ポートを使ってください。HTTP プロキシへの認証には、ProxyAuthScheme、ProxyUser、およびProxyPassword を使ってください。

XML Connector for CData Sync

FirewallServer

プロキシベースのファイアウォールの名前もしくはIP アドレス。

解説

ファイアウォールトラバーサルを許容するために設定するIP アドレス、DNS 名、もしくはプロキシホスト名を指定するプロパティです。プロトコルはFirewallType で指定されます。このプロパティとFirewallServer を使って、SOCKS 経由での接続、もしくはトンネリングが可能です。HTTP プロキシへの接続には、ProxyServer を使用します。

Sync App はデフォルトでシステムプロキシを使うので注意してください。他のプロキシを使う場合には、ProxyAutoDetect をfalse に設定してください。

XML Connector for CData Sync

FirewallPort

プロキシベースのファイアウォールのTCP ポート。

解説

ファイアウォールトラバーサルを許容するために設定するプロキシベースのファイアウォールのTCP ポート。名前もしくはIP アドレスを指定するには、FirewallServer を使います。FirewallType でプロトコルを指定します。

XML Connector for CData Sync

FirewallUser

プロキシベースのファイアウォールに認証するために使うユーザー名。

解説

FirewallUser およびFirewallPassword プロパティは、FirewallType により指定された認証方式に則り、FirewallServer、およびFirewallPort で指定されたプロキシに対しての認証に使われます。

XML Connector for CData Sync

FirewallPassword

プロキシベースのファイアウォールへの認証に使われるパスワード。

解説

このプロパティは、FirewallType により指定された認証メソッドに則り、FirewallServer およびFirewallPort で指定されたプロキシに渡されます。

XML Connector for CData Sync

Proxy

このセクションでは、本プロバイダーの接続文字列で設定可能なProxy プロパティの全リストを提供します。


プロパティ説明
ProxyAutoDetectこれは、システムプロキシ設定を使用するかどうかを示します。
ProxyServerHTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。
ProxyPortProxyServer プロキシが起動しているTCP ポート。
ProxyAuthSchemeProxyServer プロキシへの認証で使われる認証タイプ。
ProxyUserProxyServer プロキシへの認証に使われるユーザー名。
ProxyPasswordProxyServer プロキシへの認証に使われるパスワード。
ProxySSLTypeProxyServer プロキシへの接続時に使用するSSL タイプ。
ProxyExceptionsProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。
XML Connector for CData Sync

ProxyAutoDetect

これは、システムプロキシ設定を使用するかどうかを示します。

解説

これは他のプロキシ設定よりも優先されるため、カスタムプロキシ設定を使用するにはProxyAutoDetect をFALSE に設定する必要があります。

HTTP プロキシへの接続には、ProxyServer を参照してください。SOCKS やトンネリングなどの他のプロキシには、FirewallType を参照してください。

XML Connector for CData Sync

ProxyServer

HTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。

解説

HTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。HTTP プロキシへの認証には、Sync App はHTTP、Windows(NTLM)、もしくはKerberos 認証タイプを使用することができます。

SOCKS プロキシを経由して接続する、もしくは接続をトンネルするには、FirewallType を参照してください。

デフォルトで、Sync App はsystem プロキシを使います。他のプロキシを使う場合には、ProxyAutoDetect をfalse に設定します。

XML Connector for CData Sync

ProxyPort

ProxyServer プロキシが起動しているTCP ポート。

解説

HTTP トラフィックをリダイレクトするHTTP プロキシが実行されているポート。ProxyServer でHTTP プロキシを指定します。その他のプロキシタイプについては、FirewallType を参照してください。

XML Connector for CData Sync

ProxyAuthScheme

ProxyServer プロキシへの認証で使われる認証タイプ。

解説

この値は、ProxyServer およびProxyPort で指定されるHTTP プロキシに認証するために使われる認証タイプを指定します。

Sync App は、デフォルトでsystem proxy settings を使い、追加での設定が不要です。他のプロキシへの接続をする場合には、ProxyServer およびProxyPort に加え、ProxyAutoDetect をfalse に設定します。認証するには、ProxyAuthScheme を設定し、必要な場合にはProxyUser およびProxyPassword を設定します。

認証タイプは、次のどれかになります。

  • BASIC: Sync App はHTTP BASIC 認証を行います。
  • DIGEST: Sync App はHTTP DIGEST 認証を行います。
  • NEGOTIATE: Sync App は認証において有効なプロトコルに応じて、NTLM もしくはKerberos トークンを取得します。
  • PROPRIETARY: Sync App はNTLM もしくはKerberos トークンを発行しません。このトークンを、HTTP リクエストのAuthorization ヘッダーに含める必要があります。

SOCKS 5 認証のような他の認証タイプを使用するには、FirewallType を参照してください。

XML Connector for CData Sync

ProxyUser

ProxyServer プロキシへの認証に使われるユーザー名。

解説

ProxyUser および ProxyPassword オプションは、ProxyServer で指定されたHTTP プロキシに対して接続および認証するために使用されます。

ProxyAuthScheme で使用可能な認証タイプを選択することができます。HTTP 認証を使う場合、これをHTTP プロキシで識別可能なユーザーのユーザー名に設定します。Windows もしくはKerberos 認証を使用する場合、このプロパティを次の形式のどれかでユーザー名に設定します。

user@domain
domain\user

XML Connector for CData Sync

ProxyPassword

ProxyServer プロキシへの認証に使われるパスワード。

解説

このプロパティは、NTLM(Windows)、Kerberos、もしくはHTTP 認証をサポートするHTTP プロキシサーバーに認証するために使われます。HTTP プロキシを指定するためには、ProxyServer およびProxyPort を設定します。認証タイプを指定するためにはProxyAuthScheme を設定します。

HTTP 認証を使う場合、さらにHTTP プロキシにProxyUser およびProxyPassword を設定します。

NTLM 認証を使う場合、Windows パスワードにProxyUser およびProxyPassword を設定します。Kerberos 認証には、これらを入力する必要があります。

SOCKS 5 認証もしくは、トンネリングは、FirewallType を参照してください。

デフォルトで、Sync App はsystem プロキシを使います。他のプロキシに接続する場合には、これをfalse に設定します。

XML Connector for CData Sync

ProxySSLType

ProxyServer プロキシへの接続時に使用するSSL タイプ。

解説

このプロパティは、ProxyServer で指定されたHTTP プロキシへの接続にSSL を使用するかどうかを決定します。この値は、AUTO、ALWAYS、NEVER、TUNNEL のいずれかです。有効な値は次のとおりです。

AUTOデフォルト設定。URL がHTTPS URL の場合、Sync App は、TUNNEL オプションを使います。URL がHTTP URL の場合、コンポーネントはNEVER オプションを使います。
ALWAYS接続は、常にSSL 有効となります。
NEVER接続は、SSL 有効になりません。
TUNNEL接続は、トンネリングプロキシを経由します。プロキシサーバーがリモートホストへの接続を開き、プロキシを経由して通信が行われます。

XML Connector for CData Sync

ProxyExceptions

ProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。

解説

ProxyServer は、このプロパティで定義されたアドレスを除くすべてのアドレスに使用されます。セミコロンを使用してエントリを区切ります。

Sync App は、追加設定なしにデフォルトでシステムのプロキシ設定を使います。この接続のプロキシ例外を明示的に構成するには、ProxyAutoDetect をfalse に設定して、ProxyServer およびProxyPort を設定する必要があります。認証するには、ProxyAuthScheme を設定し、必要な場合にはProxyUser およびProxyPassword を設定します。

XML Connector for CData Sync

Logging

このセクションでは、本プロバイダーの接続文字列で設定可能なLogging プロパティの全リストを提供します。


プロパティ説明
LogModulesログファイルに含めるコアモジュール。
XML Connector for CData Sync

LogModules

ログファイルに含めるコアモジュール。

解説

指定された(';' で区切られた)モジュールのみがログファイルに含まれます。デフォルトではすべてのモジュールが含まれます。

概要はログ ページを参照してください。

XML Connector for CData Sync

Schema

このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。
BrowsableSchemasこのプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesこのプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。
Views使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。
PushAttributesSet PushAttributes to true to push any identified attributes as columns.
FlattenArraysデフォルトで、ネスト配列はXML 文字列として返されます。 FlattenArrays プロパティはネスト配列の要素をフラット化してそれぞれのカラムとするために使われます。ネスト配列から返す要素の数に FlattenArrays を設定します。
FlattenObjectsフラット化されたオブジェクトプロパティとしてカラムを表示するには、 FlattenObjects をtrue に設定します。そうでなければ、配列にネストされたオブジェクトはXML 文字列として返されます。
QualifyColumnsControls whether the provider will use relative column names.
XML Connector for CData Sync

Location

テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。

解説

Sync App のスキーマファイル(テーブルとビューの場合は.rsd ファイル、ストアドプロシージャの場合は.rsb ファイル)を含むディレクトリへのパス。このフォルダの場所は、実行ファイルの場所からの相対パスにすることができます。Location プロパティは、定義をカスタマイズしたり(例えば、カラム名を変更する、カラムを無視するなど)、新しいテーブル、ビュー、またはストアドプロシージャでデータモデルを拡張する場合にのみ必要です。

指定しない場合、デフォルトの場所は"%APPDATA%\\CData\\XML Data Provider\\Schema" となり、%APPDATA% はユーザーのコンフィギュレーションディレクトリに設定されます:

Platform %APPDATA%
Windows APPDATA 環境変数の値
Linux ~/.config

XML Connector for CData Sync

BrowsableSchemas

このプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。

解説

スキーマをデータベースからリストすると、負荷がかかる可能性があります。接続文字列でスキーマのリストを提供すると、 パフォーマンスが向上します。

XML Connector for CData Sync

Tables

このプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。

解説

テーブルを複数のデータベースからリストすると、負荷がかかる可能性があります。接続文字列でテーブルのリストを提供すると、Sync App のパフォーマンスが向上します。

このプロパティは、作業したいビューがすでにわかっていて、ビューが多すぎる場合に、ビューを自動的にリストする代わりに使用することもできます。

カンマ区切りのリストで使用したいテーブルを指定します。各テーブルは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space` です。

複数のスキーマまたはカタログを持つデータソースに接続する場合は、複数のカタログやスキーマに存在するテーブル間の曖昧さを避けるため、最後の例のように、このプロパティにテーブルの完全修飾名を指定する必要があることに注意してください。

XML Connector for CData Sync

Views

使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。

解説

ビューを複数のデータベースからリストすると、負荷がかかる可能性があります。接続文字列でビューのリストを提供すると、Sync App のパフォーマンスが向上します。

このプロパティは、作業したいビューがすでにわかっていて、ビューが多すぎる場合に、ビューを自動的にリストする代わりに使用することもできます。

カンマ区切りのリストで使用したいビューを指定します。各ビューは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space` です。

複数のスキーマまたはカタログを持つデータソースに接続する場合は、複数のカタログやスキーマに存在するテーブル間の曖昧さを避けるため、最後の例のように、このプロパティにテーブルの完全修飾名を指定する必要があることに注意してください。

XML Connector for CData Sync

PushAttributes

Set PushAttributes to true to push any identified attributes as columns.

解説

When set to true (default), the Sync App will push attributes as individual columns (where applicable). Attributes will also be included in any aggregates generated.

When set to false, attributes will not be pushed as columns or in aggregates (e.g., the Sync App strips them from the output).

XML Connector for CData Sync

FlattenArrays

デフォルトで、ネスト配列はXML 文字列として返されます。 FlattenArrays プロパティはネスト配列の要素をフラット化してそれぞれのカラムとするために使われます。ネスト配列から返す要素の数に FlattenArrays を設定します。

解説

XML では、配列は繰り返し要素として識別されます。デフォルトで、ネスト配列はXML 文字列として返されます。FlattenArrays プロパティはネスト配列の要素をフラット化してそれぞれのカラムとするために使われます。これは短い配列の場合にのみ推奨されます。

ネスト配列から返す要素の数にFlattenArrays を設定します。指定された要素はカラムとして返されます。Zero-base のインデックスはカラム名にコンカテネートされます。他の要素は無視されます。

例えば、文字列の配列から要素のアービトラリー数を返すことができます。

<languages>FLOW-MATIC</languages>
<languages>LISP</languages>
<languages>COBOL</languages>
FlattenArrays が1に設定されている場合、配列は次のテーブルのようにフラット化されます。

カラム名カラム値
languages.0FLOW-MATIC

FlattenArrays を-1 に設定すると、ネストされた配列のすべての要素をフラット化します。

XML Connector for CData Sync

FlattenObjects

フラット化されたオブジェクトプロパティとしてカラムを表示するには、 FlattenObjects をtrue に設定します。そうでなければ、配列にネストされたオブジェクトはXML 文字列として返されます。

解説

フラット化されたオブジェクトプロパティとしてカラムを表示するには、FlattenObjects をtrue に設定します。

  • Object:同じ階層で繰り返されない親要素。
  • Array:同じ階層で繰り返す要素。
このプロパティをfalse に設定すると、配列にネストされたオブジェクトはXML 文字列として返されます。

例えば、このプロパティを使用して次のネストされたオブジェクトを接続時にフラット化できます。

<grades>
  <grade>A</grade>
  <score>2</score>
</grades>
<grades>
  <grade>A</grade>
  <score>6</score>
</grades>
<grades>
  <grade>A</grade>
  <score>10</score>
</grades>
<grades>
  <grade>A</grade>
  <score>9</score>
</grades>
<grades>
  <grade>B</grade>
  <score>14</score>
</grades>
カラム名を生成するために、Sync App はプロパティ名をオブジェクト名にドットでコンカティネイトします。FlattenObjects がtrue に設定されていて、FlattenArrays が1に設定されている場合、配列は次のテーブルのようにフラット化されます。

カラム名カラム値
grades.0.gradeA
grades.0.score2

XML Connector for CData Sync

QualifyColumns

Controls whether the provider will use relative column names.

解説

By default the Sync App will only qualify a column name as much as is necessary to make it unique. For example, in this document the Sync App will produce the columns id (referring to the company id) and employee.id.

<company>
  <id>Smith Holdings</id>
  <employees>
    <employee>
      <id>George Smith</id>
    </employee>
    <employee>
      <id>Mike Johnson</id>
    </employee>
  </employees>
</company>

When this option is set to Parent, the Sync App uses a similar procedure to the one above. However, the Sync App will always qualify columns by one level so that their table name is included, even if the column name is unique. For example, the above document would generate the columns company.id and employee.id because both are unique when including their parent.

When this option is set to Full, the Sync App will qualify all column names with their full XPath. This generates longer column names but ensures that it is clear where each column name comes from within the document. For the example above, the Sync App would generate the columns company.id and company.employees.employee.id.

XML Connector for CData Sync

Miscellaneous

このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。


プロパティ説明
BackwardsCompatibilityMode2017バージョンで使用可能なXML 機能を使用するには、 BackwardsCompatibilityMode をtrue に設定します。
CharsetXML ファイルに移行、またはXML ファイルから移行した文字データをエンコードおよびデコードするための、セッション毎の文字セットを指定します。デフォルト値はUTF-8 です。
ClientCultureこのプロパティを使用して、クライアントアプリケーションが受け取るデータの形式(通貨値など)を指定できます。このプロパティは、クライアントアプリケーションがマシンの現在のカルチャ設定をサポートしていない場合に使用できます。例えば、Microsoft Access では'en-US' が必要です。
Cultureこの設定を使用して、provider に渡された特定のデータ型をprovider が解釈する方法を決定するカルチャ設定を指定できます。例えば、Culture='de-DE' の設定にすると、米国のマシンでもドイツ語形式で出力されます。
CustomHeadersユーザーが決定したその他のヘッダー(オプション)。
CustomUrlParamsリクエストに含めるカスタムクエリ文字列。
ExcludeFilesテーブルとしてモデル化されたファイル一式から除外するファイル拡張子のカンマ区切りリスト。
FlattenRowLimitThe maximum number of rows that can result from a single flattened element.
FolderIdGoogle Drive のフォルダID。設定すると、URI で指定されたリソースの位置はすべての操作においてFolder ID からの相対位置となります。
GenerateSchemaFilesスキーマを生成して保存するユーザーの好みのタイミングを示します。
IncludeDropboxTeamResourcesDropbox チームフォルダやファイルを含めるかどうかを示します。
IncludeFilesテーブルとしてモデル化されたファイル一式に含めるファイル拡張子のカンマ区切りリスト。
IncludeItemsFromAllDrivesGoogle Drive の共有ドライブ項目を結果に含めるかどうか。存在しないかfalse に設定されている場合、共有ドライブ項目は返されません。
MaxRowsクエリで集計またはGROUP BY を使用しない場合に返される行数を制限します。これはLIMIT 句よりも優先されます。
MetadataDiscoveryURI複数のファイルを1つのテーブルに集約する際に使用します。このプロパティは、集約されたテーブルのスキーマを決定するために読み込む特定のファイルを指定します。
Otherこれらの隠しプロパティは特定のユースケースでのみ使用されます。
PagesizeXML から返されるページあたりの結果の最大数。
PathSeparatorDetermines the character which will be used to replace the file separator.
PseudoColumnsこのプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。
RowScanDepth動的にテーブルのカラムを決定するためにスキャンする行数。
Timeoutタイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。
TypeDetectionSchemeDetermines how to determine the data types of columns.
URISeparatorA delimiter used to separate different values in the URI property.
UserDefinedViewsカスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。
XML Connector for CData Sync

BackwardsCompatibilityMode

2017バージョンで使用可能なXML 機能を使用するには、 BackwardsCompatibilityMode をtrue に設定します。

解説

true に設定すると、Sync App は2017バージョンと同じように機能し、引き続きサポート/改善されます。

false(デフォルト)に設定すると、新しいフラット化機能が利用可能になります。これには、SQL クエリによるテーブルとカラムの動的なフラット化同様に、DataModel、FlattenArrays、およびFlattenObjects が含まれます。

XML Connector for CData Sync

Charset

XML ファイルに移行、またはXML ファイルから移行した文字データをエンコードおよびデコードするための、セッション毎の文字セットを指定します。デフォルト値はUTF-8 です。

解説

XML ファイルに移行、またはXML ファイルから移行した文字データをエンコードおよびデコードするための、セッション毎の文字セットを指定します。デフォルト値はUTF-8 です。

XML Connector for CData Sync

ClientCulture

このプロパティを使用して、クライアントアプリケーションが受け取るデータの形式(通貨値など)を指定できます。このプロパティは、クライアントアプリケーションがマシンの現在のカルチャ設定をサポートしていない場合に使用できます。例えば、Microsoft Access では'en-US' が必要です。

解説

このオプションは、Sync App 出力の形式に影響を与えます。入力の解釈方法を定義する形式を指定するには、Culture オプションを使用します。デフォルトでは、Sync App は入力の解釈と出力の形式に、マシンの現在のロケール設定を使用します。

XML Connector for CData Sync

Culture

この設定を使用して、provider に渡された特定のデータ型をprovider が解釈する方法を決定するカルチャ設定を指定できます。例えば、Culture='de-DE' の設定にすると、米国のマシンでもドイツ語形式で出力されます。

解説

このプロパティは、Sync App 入力に影響を与えます。別のカルチャ形式の値を解釈するには、Client Culture プロパティを使用します。デフォルトでは、Sync App は入力の解釈と出力の形式に、マシンの現在のロケール設定を使用します。

XML Connector for CData Sync

CustomHeaders

ユーザーが決定したその他のヘッダー(オプション)。

解説

このプロパティは、他のプロパティ(ContentType、From など)から作成されたHTTP リクエストヘッダーに追加するヘッダーの文字列に設定できます。

ヘッダーは、HTTP の仕様で説明されているとおり、"header: value" 形式でなければなりません。ヘッダー行はキャリッジリターンと改行(CRLF)文字で区切る必要があります。

このプロパティは慎重に使用してください。このプロパティに無効なヘッダーが含まれていると、HTTP リクエストは失敗する場合があります。

このプロパティは、専門的/非標準的なAPI と統合するためにSync App の機能を微調整する場合に便利です。

XML Connector for CData Sync

CustomUrlParams

リクエストに含めるカスタムクエリ文字列。

解説

CustomUrlParams を使用すると、HTTP リクエストに含まれるカスタムクエリ文字列パラメータを指定できます。パラメータは、field1=value1&field2=value2&field3=value3 の形式で、クエリ文字列としてエンコードする必要があります。クエリ文字列の値はURL エンコードされている必要があります。

XML Connector for CData Sync

ExcludeFiles

テーブルとしてモデル化されたファイル一式から除外するファイル拡張子のカンマ区切りリスト。

解説

datetime フィルタを指定することも可能です。現在、CreatedDate およびModifiedDate がサポートされています。 すべての拡張フィルタは論理和(OR 演算子を使用)で評価され、結果のフィルタはdatetime フィルタと組み合わせて(AND 演算子を使用)評価されます。

例:

ExcludeFiles="TXT,CreatedDate<='2020-11-26T07:39:34-05:00'"
ExcludeFiles="TXT,ModifiedDate<=DATETIMEFROMPARTS(2020, 11, 26, 7, 40, 50, 000)"
ExcludeFiles="ModifiedDate>=DATETIMEFROMPARTS(2020, 11, 26, 7, 40, 49, 000),ModifiedDate<=CURRENT_TIMESTAMP()"

XML Connector for CData Sync

FlattenRowLimit

The maximum number of rows that can result from a single flattened element.

解説

In some cases the FlattenedDocuments DataModel may try to output more rows than intended, either because of the shape of the data or the table identification options. If the number of rows to be generated is large enough this can lead to memory issues as the Sync App has to store all the generated rows in memory before returning them.

To avoid this the Sync App will check that the number of rows to be output does not exceed this limit (250000 by default). If the Sync App would output more rows than this for a single flattened element it will instead fail the query and report an error.

XML Connector for CData Sync

FolderId

Google Drive のフォルダID。設定すると、URI で指定されたリソースの位置はすべての操作においてFolder ID からの相対位置となります。

解説

Google Drive のフォルダID。設定すると、URI で指定されたリソースの位置はすべての操作においてFolder ID からの相対位置となります。

XML Connector for CData Sync

GenerateSchemaFiles

スキーマを生成して保存するユーザーの好みのタイミングを示します。

解説

このプロパティは、Location で指定されたパスの.rsd ファイルにスキーマをアウトプットします。

有効な設定は次のとおりです。

  • Never:スキーマファイルは生成されません。
  • OnUse:スキーマファイルがまだ存在していない場合に、初めてテーブルが参照されるときにスキーマファイルが生成されます。
  • OnStart:現在スキーマファイルを持たないあらゆるテーブルに対して、接続時にスキーマファイルが生成されます。
  • OnCreate:CREATE TABLE SQL クエリを実行すると、スキーマファイルが生成されます。
ファイルを再生成したい場合には、既存のファイルを削除する必要があることに注意してください。

SQL でスキーマを生成する

GenerateSchemaFiles をOnUse に設定すると、Sync App はSELECT クエリを実行したときにスキーマを生成します。スキーマはクエリのそれぞれの参照されたテーブルに対して生成されます。

GenerateSchemaFiles をOnCreate に設定すると、CREATE TABLE クエリが実行されたときにのみスキーマが生成されます。

接続時にスキーマを生成する

このプロパティのもう一つの使い方は、接続するときにデータベース内のすべてのテーブルのスキーマを取得することです。これには、GenerateSchemaFiles をOnStart に設定して接続します。

XML Connector for CData Sync

IncludeDropboxTeamResources

Dropbox チームフォルダやファイルを含めるかどうかを示します。

解説

Dropbox チームフォルダやファイルにアクセスするには、この接続プロパティをTrue に設定してください。

XML Connector for CData Sync

IncludeFiles

テーブルとしてモデル化されたファイル一式に含めるファイル拡張子のカンマ区切りリスト。

解説

Comma-separated list of file extensions to include into the set of the files modeled as tables. For example, IncludeFiles=XML,TXT. The default is XML,TXT.

The following archive types are also supported: ZIP, TAR, and GZ. Files of these types are modeled as an aggregated table.

A '*' value can be specified to include all files. A 'NOEXT' value can be specified to include files without an extension.

datetime フィルタを指定することも可能です。現在、CreatedDate およびModifiedDate がサポートされています。 すべての拡張フィルタは論理和(OR 演算子を使用)で評価され、結果のフィルタはdatetime フィルタと組み合わせて(AND 演算子を使用)評価されます。

例:

IncludeFiles="TXT,CreatedDate<='2020-11-26T07:39:34-05:00'"
IncludeFiles="TXT,ModifiedDate<=DATETIMEFROMPARTS(2020, 11, 26, 7, 40, 50, 000)"
IncludeFiles="ModifiedDate>=DATETIMEFROMPARTS(2020, 11, 26, 7, 40, 49, 000),ModifiedDate<=CURRENT_TIMESTAMP()"

XML Connector for CData Sync

IncludeItemsFromAllDrives

Google Drive の共有ドライブ項目を結果に含めるかどうか。存在しないかfalse に設定されている場合、共有ドライブ項目は返されません。

解説

このプロパティを'True' に設定すると、共有ドライブを含むすべてのドライブからファイルが取得されます。URI の先頭を共有ドライブのパスに設定し、オプションで任意のフォルダを指定することで、ファイルの検索対象を特定の共有ドライブまたは共有ドライブ内の特定のフォルダに限定することができます(例:'gdrive://SharedDriveA/FolderA/...')。さらに、FolderId プロパティを使用すると検索対象を正確なサブディレクトリに限定できます。

XML Connector for CData Sync

MaxRows

クエリで集計またはGROUP BY を使用しない場合に返される行数を制限します。これはLIMIT 句よりも優先されます。

解説

クエリで集計またはGROUP BY を使用しない場合に返される行数を制限します。これはLIMIT 句よりも優先されます。

XML Connector for CData Sync

MetadataDiscoveryURI

複数のファイルを1つのテーブルに集約する際に使用します。このプロパティは、集約されたテーブルのスキーマを決定するために読み込む特定のファイルを指定します。

解説

複数のファイルを1つのテーブルに集約する際に使用します。このプロパティは、集約されたテーブルのスキーマを決定するために読み込む特定のファイルを指定します。

XML Connector for CData Sync

Other

これらの隠しプロパティは特定のユースケースでのみ使用されます。

解説

以下にリストされているプロパティは、特定のユースケースで使用可能です。通常のドライバーのユースケースおよび機能では、これらのプロパティは必要ありません。

複数のプロパティをセミコロン区切りリストで指定します。

統合およびフォーマット

DefaultColumnSizeデータソースがメタデータにカラムの長さを提供しない場合に、文字列フィールドのデフォルトの長さを設定します。デフォルト値は2000です。
ConvertDateTimeToGMT日時の値を、マシンのローカルタイムではなくGMT グリニッジ標準時に変換するかどうかを決定します。
RecordToFile=filename基底のソケットデータ転送を指定のファイルに記録します。

XML Connector for CData Sync

Pagesize

XML から返されるページあたりの結果の最大数。

解説

Pagesize プロパティは、XML から返されるページあたりの結果の最大数に影響を与えます。より大きい値を設定すると、1ページあたりの消費メモリが増える代わりに、パフォーマンスが向上する場合があります。

XML Connector for CData Sync

PathSeparator

Determines the character which will be used to replace the file separator.

解説

Determines the character which will be used to replace the file separator. If there is a XML file located in "Test/Files/Test.xml" and if this property is set to "_", then the table name for this file would be "Test_Files_Test.xml".

XML Connector for CData Sync

PseudoColumns

このプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。

解説

Entity Framework ではテーブルカラムでない疑似カラムに値を設定できないため、この設定はEntity Framework で特に便利です。この接続設定の値は、"Table1=Column1, Table1=Column2, Table2=Column3" の形式です。"*=*" のように"*" 文字を使用して、すべてのテーブルとすべてのカラムを含めることができます。

XML Connector for CData Sync

RowScanDepth

動的にテーブルのカラムを決定するためにスキャンする行数。

解説

テーブルのカラムを動的に決定するときにスキャンする行(オブジェクト)の数。行スキャンは、ネストされたオブジェクトに従って、1オブジェクト配列を1行としてカウントします。 GenerateSchemaFiles を使用しているときなど、スキーマ(RSD)ファイルがテーブルに対して見つからない場合、カラムは動的に決定されます。

大きな値に設定すると、リクエストにより時間がかかりますが正確さが増します。

この値を0 (ゼロ)に設定すると、XML ドキュメント全体をパースします。

関連項目

  • DataModel:検出された行をテーブルにモデル化するには、このプロパティを設定します。
  • 階層データの解析:それぞれのDataModel 設定を使用して、データをクエリする方法を示します。
  • XPath:XPath でテーブルを明示的に指定するには、このプロパティを使用します。
  • 自動スキーマ検出:RowScanDepth、FlattenObjects、およびFlattenArrays を使用して、カラム検出を設定する方法について説明します。
  • XML データのモデリング:さまざまなデータモデリング戦略のマップを提供します。

XML Connector for CData Sync

Timeout

タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。

解説

Timeout が0に設定されている場合は、操作がタイムアウトしません。処理が正常に完了するか、エラー状態になるまで実行されます。

Timeout の有効期限が切れても処理が完了していない場合は、Sync App は例外をスローします。

XML Connector for CData Sync

TypeDetectionScheme

Determines how to determine the data types of columns.

解説

NoneSetting TypeDetectionScheme to None will return all columns as the string type.
RowScanSetting TypeDetectionScheme to RowScan will scan rows to heuristically determine the data type. The RowScanDepth determines the number of rows to be scanned.

XML Connector for CData Sync

URISeparator

A delimiter used to separate different values in the URI property.

解説

By default the delimiter is a comma which means that multiple URIs can be joined together like this:

URI=c:/data/data1.xml,c:/data/data2.xml,c:/data/data3.xml

XML Connector for CData Sync

UserDefinedViews

カスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。

解説

ユーザー定義ビューは、UserDefinedViews.json というJSON 形式のコンフィギュレーションファイルで定義されています。Sync App は、このファイルで指定されたビューを自動的に検出します。

また、複数のビュー定義を持ち、UserDefinedViews 接続プロパティを使用して制御することも可能です。このプロパティを使用すると、指定されたビューのみがSync App によって検知されます。

このユーザー定義ビューのコンフィギュレーションファイルは、次のようにフォーマットされています。

  • 各ルートエレメントはビューの名前を定義します。
  • 各ルートエレメントには、query と呼ばれる子エレメントが含まれており、この子エレメントにはビューのカスタムSQL クエリが含まれています。

次に例を示します。

{
	"MyView": {
		"query": "SELECT * FROM NorthwindOData WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}
UserDefinedViews 接続プロパティを使用して、JSON コンフィギュレーションファイルの場所を指定します。次に例を示します。
"UserDefinedViews", C:\Users\yourusername\Desktop\tmp\UserDefinedViews.json
指定されたパスは引用符で囲まれていないことに注意してください。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839