XML Schema
A "OneOffixxConnectBatch" includes one or more "OneOffixxConnect" or "Entries". The "OneOffixxConnectBatch" element can contain "Settings" and "Commands", which globally affect all "entries" or enable separate functionalities (such as merging documents).
The "OneOffixxConnect" (the connect file) describes concretely a document generation or document change call. Template selection data, i.e. the relevant template or language, is set via the "Arguments". Document data can be passed via the various document functions. The document functions are identified by the "id" of the "Function" element.
<OneOffixxConnectBatch>
<Settings />
<Commands />
<Entries>
<OneOffixxConnect>
<Arguments />
<Function id="x" />
<Function id="y" />
...
</OneOffixxConnect>
</Entries>
</OneOffixxConnectBatch>
Namespace
The namespace for OneOffixx Connect is
http://schema.oneoffixx.com/OneOffixxConnectBatch/1
whereas the last number corresponds to the major version. The minor version is in the Global Settings (Key="Version" Value ="XXX").
OneOffixx Connect Batch
Contains a batch list with OneOffixx Connect structures. One OneOffixx Connect corresponds to one OneOffixx document.
Globals settings
//OneOffixxConnectBatch/Settings
This structure contains a key/value list with Global Settings. These settings are copied to the OneOffixx Connect structure during processing.
OneOffixx knows the following settings:
<?xml version="1.0" encoding="UTF-8"?>
<OneOffixxConnectBatch xmlns="http://schema.oneoffixx.com/OneOffixxConnectBatch/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Settings>
<Add key="KeepConnector">true</Add>
<Add key="CreateConnectorResult">false</Add>
<Add key="CreateConnectorResultOnError">true</Add>
</Settings>
<Entries>
…
</Entries>
</OneOffixxConnectBatch>
These settings have the same function as the corresponding command line parameters. If specified, they override the command line parameters.
NOTE
Only if a TemplateId is specified, a result file is created after generation. If the result file should also be created for tag specifications, there is the possibility to use the CreateConnectorResult command.
Global commands
//OneOffixxConnectBatch/Commands
This structure contains commands that affect the whole document list (e.g. Merge Document).
Entries
//OneOffixxConnectBatch/Entries
"Entries" corresponds to a list with documents or with connect calls.
OneOffixx Connect
//OneOffixxConnectBatch/Entries/OneOffixxConnect
The OneOffixx Connect structure corresponds to a document. Each document can be equipped with arguments, commands and document functions.
Document functions ("Function" in XML) enrich the document with data and are optional. Each function is identified by its unique id.
Via "Commands" the generated document can be processed further and thus e.g. be stored in a specific location.
Validierung
To validate or check a connect file, the process call with the parameter "/ValidateConnector" can be used. Example call:
C:\\Program…\OneOffixx.exe /KeepConnector /ValidateConnector /connectXYZDatei.xml
It should be noted that the connect file is not processed here, but checked. In productive operation, constant validation is not recommended for performance reasons.
XSD
The following is the full XSD, which is also used in validation:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.1">
<xs:annotation>
<xs:appinfo>OneOffixxConnect</xs:appinfo>
<xs:documentation xml:lang="DE">
Schema for OneOffixxConnect
Copyright PrimeSoft AG – Alle Rechte vorbehalten.
</xs:documentation>
</xs:annotation>
<!--
##########################
### Connect Batch Root ###
##########################
-->
<xs:element name="OneOffixxConnectBatch" type="OneOffixxConnectBatch"/>
<xs:complexType name="OneOffixxConnectBatch">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Settings" type="ConnectGeneralSettings" minOccurs="0" maxOccurs="1"/>
<xs:element name="Commands" type="ConnectCommands" minOccurs="0" maxOccurs="1"/>
<xs:element name="Entries" type="ConnectEntries" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<!--
##############################
### Connect Batch Settings ###
##############################
-->
<xs:complexType name="ConnectGeneralSettings">
<xs:sequence>
<xs:element name="Add" type="ConnectGeneralSetting" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ConnectGeneralSetting">
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute name="key" use="required" type="ConnectGeneralSettingsList"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ConnectGeneralSettingsList">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="KeepConnector"/>
<xs:enumeration value="CreateConnectorResult"/>
<xs:enumeration value="CreateConnectorResultOnError"/>
</xs:restriction>
</xs:simpleType>
<!--
##############################
### Connect Batch Commands ###
##############################
-->
<xs:complexType name="ConnectCommands">
<xs:sequence>
<xs:element name="Command" type="ConnectCommand" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="CommandNames">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="DefaultProcess"/>
<xs:enumeration value="ConvertToDocument"/>
<xs:enumeration value="ConvertToPdf"/>
<xs:enumeration value="UpdateFieldsOnOpen"/>
<xs:enumeration value="CreateConnectorResult"/>
<xs:enumeration value="SaveAs"/>
<xs:enumeration value="Merge"/>
<xs:enumeration value="Print"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ConnectCommand">
<xs:sequence>
<xs:element name="Parameters" type="ConnectCommandParameters" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Name" use="required" type="CommandNames"/>
</xs:complexType>
<xs:complexType name="ConnectCommandParameters">
<xs:sequence>
<xs:element name="Add" type="ConnectCommandParameter" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ConnectCommandParameter">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="key" type="CommandList" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="CommandList">
<xs:union memberTypes="CommandsDefaultProcess CommandsMerge CommandsPrint CommandsSaveAs"/>
</xs:simpleType>
<xs:simpleType name="CommandsDefaultProcess">
<xs:annotation>
<xs:documentation>Erlaubte Kommandos für Standardprozess Ablauf</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Start"/>
<xs:enumeration value="Verb"/>
<xs:enumeration value="ForceWindowOnTop"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CommandsMerge">
<xs:annotation>
<xs:documentation>Erlaubte Kommandos für Merge</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="PageNumberStart"/>
<xs:enumeration value="Filename"/>
<xs:enumeration value="InputFile"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CommandsPrint">
<xs:annotation>
<xs:documentation>Erlaubte Kommandos für Print</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Printer"/>
<xs:enumeration value="Try"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CommandsSaveAs">
<xs:annotation>
<xs:documentation>Erlaubte Kommandos für SaveAs</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Filename"/>
<xs:enumeration value="Overwrite"/>
<xs:enumeration value="CreateFolder"/>
<xs:enumeration value="Type"/>
<xs:enumeration value="AllowUpdateDocumentPart"/>
</xs:restriction>
</xs:simpleType>
<!--
#############################
### Content Root Elemente ###
#############################
-->
<xs:complexType name="ConnectEntries">
<xs:sequence>
<xs:element name="OneOffixxConnect" type="OneOffixxConnectContentRoot" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="OneOffixxConnect" type="OneOffixxConnectContentRoot"/>
<xs:complexType name="OneOffixxConnectContentRoot">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Arguments" type="OneOffixxConnectGlobalArguments" minOccurs="1" maxOccurs="1"/>
<xs:element name="Commands" type="ConnectCommands" minOccurs="0" maxOccurs="1"/>
<xs:element name="Function" type="DocumentFunctions" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<!--
###################################
### Allgemeine Connect Elemente ###
###################################
-->
<xs:complexType name="OneOffixxConnectGlobalArguments">
<xs:all>
<xs:element ref="FilterOrTemplateIdOrDocumentLocation" minOccurs="1" maxOccurs="1"/>
<xs:element name="LanguageLcid" type="Lcid" minOccurs="0" maxOccurs="1"/>
<xs:element name="ProfileId" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Profile" type="Profile" minOccurs="0" maxOccurs="1"/>
<xs:element name="Organization" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ForceWindowOnTop" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
<xs:element name="Version" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Published" />
<xs:enumeration value="PublishedDraft" />
<xs:enumeration value="SpecificDraft" />
<xs:enumeration value="SpecificPublished" />
<xs:enumeration value="Draft" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Editor" type="xs:boolean" minOccurs="0" maxOccurs="0" />
</xs:all>
</xs:complexType>
<xs:element name="FilterOrTemplateIdOrDocumentLocation" abstract="true" />
<xs:element name="TemplateId" type="Guid" substitutionGroup="FilterOrTemplateIdOrDocumentLocation"/>
<xs:element name="TemplateFilter" type="TemplateFilter" substitutionGroup="FilterOrTemplateIdOrDocumentLocation">
<xs:annotation>
<xs:documentation>Erlabut das Filtern von Templates nach Tags.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="TemplateFilter" >
<xs:sequence>
<xs:element name="Tag" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Profile" >
<xs:sequence>
<xs:element name="ThemeId" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="OrganizationId" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:element name="DocumentLocation" type="xs:anyURI" substitutionGroup="FilterOrTemplateIdOrDocumentLocation"/>
<xs:complexType name="Settings">
<xs:sequence>
<xs:element name="Value" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="DocumentFunctionSettingValues">
<xs:attribute name="key" type="DocumentFunctionSettingKeys" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!--
##########################
### Dokumentfunktionen ###
##########################
-->
<xs:complexType name="DocumentFunctions">
<xs:all>
<xs:element name="Settings" type="Settings" minOccurs="0" maxOccurs="1"/>
<xs:element name="Arguments" type="Arguments" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="name" use="required" type="DocumentFunctionNames"/>
<xs:attribute name="id" use="required" type="DocumentFunctionIDs"/>
</xs:complexType>
<xs:complexType name="Arguments">
<xs:sequence>
<xs:choice>
<xs:element name="Value" type="DocumentFunctionValueArguments" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContactList" type="DocumentFunctionContactListArguments" minOccurs="0" maxOccurs="1"/>
<xs:element name="Snippet" type="DocumentFunctionSnippetArguments" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Part" type="DocumentFunctionPartsInjectorArguments" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Interface" type="DocumentFunctionInterfaceConnectorInterfaceArguments" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="CustomInterfaces" type="AnyXMLData" minOccurs="0" maxOccurs="1"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="DocumentFunctionNames">
<xs:annotation>
<xs:documentation>Dokumentfunktionsbezeichnung</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="DocumentParameter"/>
<xs:enumeration value="Recipient"/>
<xs:enumeration value="ProfileData"/>
<xs:enumeration value="Save"/>
<xs:enumeration value="Metadata"/>
<xs:enumeration value="SnippetsResolver"/>
<xs:enumeration value="CustomXmlPartsInjector"/>
<xs:enumeration value="CustomInterfaceConnector"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DocumentFunctionIDs">
<xs:annotation>
<xs:documentation>Dokumentfunktions-IDs</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<!-- Dokument-Parameter -->
<xs:enumeration value="2de8db66-f3d7-456d-bba3-6bb0f12c1fb6"/>
<!-- Empfänger -->
<xs:enumeration value="b9e8ec94-bec0-418a-b985-c565ac3bec23"/>
<!-- Profildaten -->
<xs:enumeration value="5C8B5321-E02D-4A1C-80E3-627D40AEABAF"/>
<!-- Speichern / Save -->
<xs:enumeration value="187593ed-59af-4642-af9f-2f7fa56915bb"/>
<!-- Metadaten -->
<xs:enumeration value="c364b495-7176-4ce2-9f7c-e71f302b8096"/>
<!-- Bausteine / SnippetsResolver -->
<xs:enumeration value="dd752747-733e-4175-9fc7-028ab7472742"/>
<!-- Strukturdatenübermittlung (PartsInjector) -->
<xs:enumeration value="6f6430fe-6c11-41de-9f29-c29fef4de861"/>
<!-- Fachapplikationsspezifische Parameter (CustomInterfaceConnector) -->
<xs:enumeration value="70E94788-CE84-4460-9698-5663878A295B"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DocumentFunctionSettingKeys">
<xs:union memberTypes="DFSettingKeysDocumentParameter DFSettingKeysRecipient DFSettingKeysSave"/>
</xs:simpleType>
<xs:simpleType name="DocumentFunctionSettingValues">
<xs:union memberTypes="DFSettingValuesDocumentParameter DFSettingValuesRecipient DFSettingValuesSave"/>
</xs:simpleType>
<!--
####################################
### Dokumentfunktionen Arguments ###
####################################
-->
<!-- Dokument-Parameter, Profildaten, Metadaten und Save-->
<xs:complexType name="DocumentFunctionValueArguments" mixed="true">
<xs:annotation>
<xs:documentation>Values für Dokument-Parameter, Profildaten, Metadaten und Save</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Line" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="key" type="Key" use="required"/>
<!-- MetadataDatatyp für DF Metadaten -->
<xs:attribute name="type" type="MetadataDatatyps" use="optional"/>
</xs:complexType>
<xs:simpleType name="MetadataDatatyps">
<xs:annotation>
<xs:documentation>Datentypen für Metadaten</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="string"/>
<xs:enumeration value="bool"/>
<xs:enumeration value="int"/>
<xs:enumeration value="datetime"/>
</xs:restriction>
</xs:simpleType>
<!-- Bausteine / Snippet Resolver -->
<xs:complexType name="DocumentFunctionSnippetArguments" mixed="true">
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="Guid" use="optional"/>
<xs:attribute name="bookmark" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="type" type="SnippetTypeListe" use="optional"/>
<xs:attribute name="parser" type="SnippetParserListe" use="optional"/>
</xs:complexType>
<xs:simpleType name="SnippetTypeListe">
<xs:annotation>
<xs:documentation>Datentypen für Bausteine</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Html"/>
<xs:enumeration value="RichText"/>
<xs:enumeration value="Text"/>
<xs:enumeration value="Mhtml"/>
<xs:enumeration value="Image"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SnippetParserListe">
<xs:annotation>
<xs:documentation>Parser-Types for Snippets</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="OneOffixx"/>
</xs:restriction>
</xs:simpleType>
<!-- Custom Interfaces -->
<xs:complexType name="DocumentFunctionInterfaceConnectorInterfaceArguments" >
<xs:sequence>
<xs:element name="Node" type="CustomInterfaceConnectorNodeType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Name" type="Key" use="required"/>
</xs:complexType>
<xs:complexType name="CustomInterfaceConnectorNodeType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Id" use="required" type="Key"/>
<xs:attribute name="Value" use="optional" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- Part Injector -->
<xs:complexType name="DocumentFunctionPartsInjectorArguments">
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- Empfänger -->
<xs:complexType name="DocumentFunctionContactListArguments">
<xs:sequence>
<xs:element name="ContactItem" type="ContactItemType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="GlobalViewOptions" type="GlobalViewContactListOptionsType" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ContactItemType">
<xs:all>
<xs:element name="AddressType" type="AddressingType" minOccurs="0" maxOccurs="1"/>
<xs:element name="Company" type="CompanyType" minOccurs="0" maxOccurs="1"/>
<xs:element name="Person" type="PersonType" minOccurs="0" maxOccurs="1"/>
<!-- AddressProviderData kann mehrfach vorkommen – Deklaration maxOccurs="unbounded" in xs:all ist jedoch nicht möglich -->
<xs:element name="AddressProviderData" type="AddressProviderDataType" minOccurs="0"/>
<xs:element name="Transmission" type="TransmissionType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ExtendentFields" type="ExtendentFieldsType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContactViewOptions" type="ContactViewOptionsType" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="Selected" type="xs:boolean" use="optional"/>
<xs:attribute name="id" type="Key" use="optional"/>
</xs:complexType>
<xs:simpleType name="AddressingType">
<xs:restriction base="xs:string">
<xs:enumeration value="CompanyData"/>
<xs:enumeration value="PersonData"/>
<xs:enumeration value="CompanyAndPersonData"/>
</xs:restriction>
</xs:simpleType>
<!-- Company Data -->
<xs:complexType name="CompanyType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="CompanyName" type="CompanyNameType" minOccurs="1" maxOccurs="1"/>
<xs:element name="Supplement" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Department" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Address" type="AddressType" minOccurs="0" maxOccurs="1"/>
<xs:element name="Communication" type="CommunicationType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Picture" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CompanyNameType" mixed="true">
<xs:sequence>
<xs:element name="Line" type="xs:string" minOccurs="0" maxOccurs="2"/>
</xs:sequence>
</xs:complexType>
<!-- Person Data -->
<xs:complexType name="PersonType">
<xs:sequence>
<!-- choice wird benötigt damit in beliebiger Reihenfolge möglich -->
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Title" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="LastName" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="FirstName" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="SecondName" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="NickName" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Initials" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="BirthDate" type="Date" minOccurs="0" maxOccurs="1"/>
<xs:element name="Profession" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Position" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="SalutationShort" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Salutation" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Greeting" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Address" type="AddressType" minOccurs="0" maxOccurs="1"/>
<xs:element name="Communication" type="CommunicationType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Picture" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<!-- Adressprovider Data -->
<xs:complexType name="AddressProviderDataType">
<xs:all>
<xs:element name="ProviderName" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Updated" type="Date" minOccurs="0" maxOccurs="1"/>
<xs:element name="Published" type="Date" minOccurs="0" maxOccurs="1"/>
<xs:element name="Label" type="LabelType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ProviderResponse" type="AnyTextOrXMLData" minOccurs="0" maxOccurs="1"/>
<xs:element name="Links" type="LinksType" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="Id" use="optional" type="xs:string"/>
</xs:complexType>
<xs:complexType name="LabelType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Type" use="optional" type="LabelTypeList"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="LabelTypeList">
<xs:restriction base="xs:string">
<xs:enumeration value="text"/>
<xs:enumeration value="html"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="LinksType">
<xs:sequence>
<xs:element name="Link" type="LinkType" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LinkType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Type" use="optional" type="LinkTypeList"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="LinkTypeList">
<xs:restriction base="xs:string">
<xs:enumeration value="WebPage"/>
<xs:enumeration value="VCard"/>
</xs:restriction>
</xs:simpleType>
<!-- Informationen zur Ãœbermittlung -->
<xs:complexType name="TransmissionType">
<xs:all>
<xs:element name="DocumentLanguage" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="TypeOfDistribution" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="IsDefault" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="Text" use="optional" type="xs:string"/>
</xs:complexType>
<!-- Extended Fields -->
<xs:complexType name="ExtendentFieldsType">
<xs:sequence>
<xs:element name="Item" type="ItemType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ItemType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Key" use="required" type="Key"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- Contact View Options -->
<xs:complexType name="ContactViewOptionsType">
<xs:attribute name="SelectedAddress" use="optional" type="SelectedAddressList"/>
<xs:attribute name="AddressingType" use="optional" type="AddressingTypeList"/>
<xs:attribute name="ShowProviderLayout" use="optional" type="xs:boolean"/>
<xs:attribute name="PersonOverFirm" use="optional" type="xs:boolean"/>
<xs:attribute name="CountryView" use="optional" type="xs:boolean"/>
<xs:attribute name="CountryCodeView" use="optional" type="xs:boolean"/>
<xs:attribute name="SalutationView" use="optional" type="xs:boolean"/>
<xs:attribute name="SalutationSeparatetLine" use="optional" type="xs:boolean"/>
<xs:attribute name="SecondNameView" use="optional" type="xs:boolean"/>
<xs:attribute name="PositionView" use="optional" type="xs:boolean"/>
<xs:attribute name="InterneAddress" use="optional" type="xs:boolean"/>
</xs:complexType>
<xs:complexType name="GlobalViewContactListOptionsType">
<xs:all>
<xs:element name="ValueList" type="AnyXMLData" minOccurs="0" maxOccurs="1"/>
<xs:element name="Locality" type="AnyXMLData" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="OutputFilter" use="optional" type="ContactsOutputFilterList"/>
<xs:attribute name="MergeAddressList" use="optional" type="xs:boolean"/>
</xs:complexType>
<xs:simpleType name="ContactsOutputFilterList">
<xs:restriction base="xs:string">
<xs:enumeration value="first"/>
<xs:enumeration value="selected"/>
<xs:enumeration value="an"/>
<xs:enumeration value="cc"/>
<xs:enumeration value="bcc"/>
<xs:enumeration value="all"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SelectedAddressList">
<xs:restriction base="xs:string">
<xs:enumeration value="Business"/>
<xs:enumeration value="Private"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AddressingTypeList">
<xs:restriction base="xs:string">
<xs:enumeration value="An"/>
<xs:enumeration value="Cc"/>
<xs:enumeration value="Bcc"/>
</xs:restriction>
</xs:simpleType>
<!-- Address Data -->
<xs:complexType name="AddressType">
<xs:all>
<xs:element name="Street" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="CareOf" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Apartment" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Floor" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="City" type="CityType" minOccurs="0" maxOccurs="1"/>
<xs:element name="PostOfficeBox" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="PostOfficeBoxCity" type="CityType" minOccurs="0" maxOccurs="1"/>
<xs:element name="Country" type="CountryType" minOccurs="0" maxOccurs="1"/>
</xs:all>
</xs:complexType>
<xs:complexType name="CityType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="ZipCode" type="ZipCode"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CountryType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="ShortCode" use="required" type="CountryShortCode"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- Communication Data -->
<xs:complexType name="CommunicationType" mixed="true">
<xs:attribute name="Type" use="required" type="CommunicationTypeList"/>
<xs:attribute name="Prefered" use="optional" type="xs:boolean"/>
</xs:complexType>
<xs:simpleType name="CommunicationTypeList">
<xs:restriction base="xs:string">
<xs:enumeration value="Language"/>
<xs:enumeration value="Email_direct"/>
<xs:enumeration value="Email_central"/>
<xs:enumeration value="Phone_direct"/>
<xs:enumeration value="Phone_central"/>
<xs:enumeration value="Fax_direct"/>
<xs:enumeration value="Fax_central"/>
<xs:enumeration value="Mobile"/>
<xs:enumeration value="Homepage"/>
</xs:restriction>
</xs:simpleType>
<!--
###################################
### Dokumentfunktionen Settings ###
###################################
-->
<!-- Dokument-Parameter -->
<xs:simpleType name="DFSettingKeysDocumentParameter">
<xs:annotation>
<xs:documentation>Zugelassene Settings Keys für Dokument-Parameter</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="ShowDialog"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DFSettingValuesDocumentParameter">
<xs:annotation>
<xs:documentation>Zugelassene Settings Values für Dokumentfunktionen</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
<!-- Empfänger -->
<xs:simpleType name="DFSettingKeysRecipient">
<xs:annotation>
<xs:documentation>Zugelassene Settings Keys für Empfänger</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="ShowDialog"/>
<xs:enumeration value="OutlookContactSaveEnabled"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DFSettingValuesRecipient">
<xs:annotation>
<xs:documentation>Zugelassene Settings Values für Dokumentfunktionen</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
<!-- Speichern -->
<xs:simpleType name="DFSettingKeysSave">
<xs:annotation>
<xs:documentation>Zugelassene Settings Keys für Speicherfunktion</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="FilepathBehavior"/>
<xs:enumeration value="FilenameBehavior"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DFSettingValuesSave">
<xs:annotation>
<xs:documentation>Zugelassene Settings Values für Dokumentfunktionen</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="default"/>
<xs:enumeration value="static"/>
</xs:restriction>
</xs:simpleType>
<!--
##############################
### spezifische Datentypen ###
##############################
-->
<xs:simpleType name="Guid">
<xs:annotation>
<xs:documentation>Validierung GUID bsp. af3c8c18-ccca-4e7b-85ed-1da6afe0b742</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Lcid">
<xs:annotation>
<xs:documentation>Validierung Lcid bsp. 2055</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:unsignedInt">
<xs:minInclusive value="1" />
<xs:maxInclusive value="99999" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ZipCode">
<xs:annotation>
<xs:documentation>Validierung der Postleitzahl</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CountryShortCode">
<xs:annotation>
<xs:documentation>Validierung des Länderkürzels bspw. CH</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:whiteSpace value="collapse"/>
<xs:pattern value="([A-X]{2})" />
<xs:minLength value="2"/>
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Key">
<xs:annotation>
<xs:documentation>Validierung Key ohne Leerzeichen und min. einem Zeichen</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:whiteSpace value="collapse"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Date">
<xs:annotation>
<xs:documentation>Validierung korrektes Datumsformat</xs:documentation>
</xs:annotation>
<xs:union memberTypes="xs:dateTime xs:date empty-string"/>
</xs:simpleType>
<xs:simpleType name="empty-string">
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
<!-- undefinierte Inhalte -->
<xs:complexType name="AnyTextOrXMLData" mixed="true">
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AnyXMLData">
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Â
PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland