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