isc.DataSource.create({
    allowAdvancedCriteria:true,
    ID:"DataSource",
    addGlobalId:"false",
    Constructor:"DataSource",
    fields:[
        {
            xmlAttribute:"true",
            type:"string",
            name:"ID"
        },
        {
            title:"Superclass",
            type:"string",
            name:"inheritsFrom"
        },
        {
            type:"boolean",
            name:"useParentFieldOrder"
        },
        {
            type:"boolean",
            name:"useLocalFieldsOnly"
        },
        {
            type:"boolean",
            name:"restrictToParentFields"
        },
        {
            xmlAttribute:"true",
            title:"DataFormat",
            valueMap:{
                custom:"Custom Binding",
                iscServer:"ISC Java Server",
                json:"JSON Web Service",
                xml:"XML / WSDL Web Service"
            },
            type:"string",
            name:"dataFormat"
        },
        {
            xmlAttribute:"true",
            type:"boolean",
            name:"useStrictJSON"
        },
        {
            xmlAttribute:"true",
            type:"boolean",
            name:"noAutoFetch"
        },
        {
            xmlAttribute:"true",
            title:"Server Type",
            valueMap:{
                custom:"Custom Server Binding",
                sql:"ISC Server SQL Connectors"
            },
            type:"string",
            name:"serverType"
        },
        {
            xmlAttribute:"true",
            title:"Callback Parameter",
            type:"string",
            name:"callbackParam"
        },
        {
            type:"Object",
            name:"requestProperties"
        },
        {
            propertiesOnly:"true",
            childTagName:"field",
            type:"DataSourceField",
            multiple:"true",
            name:"fields"
        },
        {
            title:"Add Global ID",
            type:"boolean",
            name:"addGlobalId"
        },
        {
            type:"boolean",
            name:"showPrompt"
        },
        {
            xmlAttribute:"true",
            title:"DataSource Version",
            visibility:"internal",
            type:"number",
            name:"dataSourceVersion"
        },
        {
            xmlAttribute:"true",
            title:"Database Name",
            type:"string",
            name:"dbName"
        },
        {
            xmlAttribute:"true",
            title:"Schema",
            type:"string",
            name:"schema"
        },
        {
            xmlAttribute:"true",
            title:"Table Name",
            type:"string",
            name:"tableName"
        },
        {
            type:"ServerObject",
            name:"serverObject"
        },
        {
            type:"OperationBinding",
            multiple:"true",
            name:"operationBindings"
        },
        {
            xmlAttribute:"true",
            type:"string",
            name:"serviceNamespace"
        },
        {
            xmlAttribute:"true",
            type:"string",
            name:"dataURL"
        },
        {
            xmlAttribute:"true",
            type:"string",
            name:"dataProtocol"
        },
        {
            xmlAttribute:"true",
            type:"string",
            name:"dataTransport"
        },
        {
            type:"Object",
            name:"defaultParams"
        },
        {
            type:"string",
            name:"soapAction"
        },
        {
            type:"string",
            name:"jsonPrefix"
        },
        {
            type:"string",
            name:"jsonSuffix"
        },
        {
            type:"string",
            name:"messageTemplate"
        },
        {
            visibility:"internal",
            propertiesOnly:"true",
            type:"Object",
            name:"defaultCriteria"
        },
        {
            visibility:"xmlBinding",
            type:"string",
            name:"tagName"
        },
        {
            type:"XPath",
            name:"recordXPath"
        },
        {
            type:"string",
            name:"recordName"
        },
        {
            type:"Object",
            name:"xmlNamespaces"
        },
        {
            type:"boolean",
            name:"dropExtraFields"
        },
        {
            xmlAttribute:"true",
            visibility:"internal",
            type:"string",
            name:"schemaNamespace"
        },
        {
            visibility:"internal",
            type:"boolean",
            name:"mustQualify"
        },
        {
            visibility:"internal",
            type:"boolean",
            name:"xsdSimpleContent"
        },
        {
            visibility:"internal",
            type:"boolean",
            name:"xsdAnyElement"
        },
        {
            visibility:"internal",
            type:"boolean",
            name:"xsdAbstract"
        },
        {
            title:"Title",
            type:"string",
            name:"title"
        },
        {
            title:"Title Field",
            type:"string",
            name:"titleField"
        },
        {
            title:"Plural Title",
            type:"string",
            name:"pluralTitle"
        },
        {
            xmlAttribute:"true",
            title:"Client Only",
            type:"boolean",
            name:"clientOnly"
        },
        {
            xmlAttribute:"true",
            title:"Test File Name",
            type:"URL",
            name:"testFileName"
        },
        {
            type:"Object",
            multiple:"true",
            name:"testData"
        },
        {
            type:"Object",
            multiple:"true",
            name:"cacheData"
        },
        {
            xmlAttribute:"true",
            type:"boolean",
            name:"cacheAllData"
        },
        {
            visibility:"internal",
            propertiesOnly:"true",
            type:"DataSourceField",
            multiple:"true",
            uniqueProperty:"ID",
            name:"types"
        },
        {
            visibility:"internal",
            type:"string",
            multiple:"true",
            name:"groups"
        },
        {
            visibility:"internal",
            type:"MethodDeclaration",
            multiple:"true",
            name:"methods"
        },
        {
            type:"boolean",
            name:"showSuperClassActions"
        },
        {
            type:"boolean",
            name:"createStandalone"
        },
        {
            type:"boolean",
            name:"useFlatFields"
        },
        {
            xmlAttribute:"true",
            type:"boolean",
            name:"showLocalFieldsOnly"
        },
        {
            type:"Object",
            name:"globalNamespaces"
        },
        {
            xmlAttribute:"true",
            type:"boolean",
            name:"autoDeriveSchema"
        },
        {
            xmlAttribute:"true",
            type:"boolean",
            name:"autoDeriveFKs"
        },
        {
            type:"boolean",
            name:"useLocalValidators"
        },
        {
            type:"boolean",
            name:"autoDeriveTitles"
        },
        {
            xmlAttribute:"true",
            type:"boolean",
            name:"qualifyColumnNames"
        },
        {
            type:"boolean",
            name:"validateRelatedRecords"
        },
        {
            type:"boolean",
            name:"requiresAuthentication"
        },
        {
            type:"boolean",
            name:"requiresRoles"
        },
        {
            type:"string",
            name:"requires"
        },
        {
            xmlAttribute:"true",
            type:"string",
            name:"beanClassName"
        },
        {
            xmlAttribute:"true",
            type:"boolean",
            name:"autoJoinTransactions"
        },
        {
            type:"boolean",
            name:"sparseUpdates"
        },
        {
            type:"boolean",
            name:"noNullUpdates"
        },
        {
            type:"boolean",
            name:"canExport"
        },
        {
            type:"boolean",
            name:"progressiveLoading"
        },
        {
            type:"boolean",
            name:"allowAdvancedCriteria"
        },
        {
            type:"string",
            name:"scriptImport"
        },
        {
            idAllowed:"true",
            type:"Object",
            name:"script"
        }
    ]
})
