# XML Schema Documentation: RBCS Client Configuration This document provides detailed information about the XML schema for RBCS client configuration, which defines profiles for connecting to RBCS servers. ## Root Element ### `profiles` The root element that contains a collection of server profiles. - **Type**: `profilesType` - **Contains**: Zero or more `profile` elements ## Complex Types ### `profilesType` Defines the structure for the profiles collection. - **Elements**: - `profile`: Server connection profile (0 to unbounded) ### `profileType` Defines a server connection profile with authentication, connection settings, and retry policies. - **Attributes**: - `name` (required): Name of the server profile, referenced with the '-p' parameter in rbcs-cli - `base-url` (required): RBCs server URL - `max-connections`: Maximum number of concurrent TCP connections (default: 50) - `connection-timeout`: Timeout for establishing connections - `enable-compression`: Whether to enable HTTP compression (default: true) - **Elements** (in sequence): - **Authentication** (choice of one): - `no-auth`: Disable authentication - `basic-auth`: Enable HTTP basic authentication - `tls-client-auth`: Enable TLS certificate authentication - `connection` (optional): Connection timeout settings - `retry-policy` (optional): Retry policy for failed requests - `tls-trust-store` (optional): Custom truststore for server certificate validation ### `connectionType` Defines connection timeout settings. - **Attributes**: - `idle-timeout`: Close connection after inactivity period (default: PT30S - 30 seconds) - `read-idle-timeout`: Close connection when no read occurs (default: PT60S - 60 seconds) - `write-idle-timeout`: Close connection when no write occurs (default: PT60S - 60 seconds) ### `noAuthType` Indicates no authentication should be used. - No attributes or elements ### `basicAuthType` Configures HTTP Basic Authentication. - **Attributes**: - `user` (required): Username for authentication - `password` (required): Password for authentication ### `tlsClientAuthType` Configures TLS client certificate authentication. - **Attributes**: - `key-store-file` (required): Path to the keystore file - `key-store-password` (required): Password to open the keystore - `key-alias` (required): Alias of the keystore entry with the private key - `key-password` (optional): Private key entry's encryption password ### `retryType` Defines retry policy using exponential backoff. - **Attributes**: - `max-attempts` (required): Maximum number of retry attempts - `initial-delay`: Delay before first retry (default: PT1S - 1 second) - `exp`: Exponent for computing next delay (default: 2.0) ### `trustStoreType` Configures custom truststore for server certificate validation. - **Attributes**: - `file` (required): Path to the truststore file - `password`: Truststore file password - `check-certificate-status`: Whether to check certificate validity using CRL/OCSP - `verify-server-certificate`: Whether to validate server certificates (default: true) ## Sample XML Document ```xml ``` This sample XML document demonstrates three different profiles with various authentication methods and configuration options as defined in the schema.