diff --git a/Dockerfile b/Dockerfile index 9f88544..0d2f959 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,12 +11,11 @@ RUN apt-get update \ dumb-init \ clamav \ clamav-daemon \ - clamdscan \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ # Creating folders and changing ownerships && mkdir -p /home/node/app \ - && mkdir -p /var/lib/clamav \ + && mkdir -p /var/lib/clamav \ && mkdir /usr/local/share/clamav \ && mkdir /var/run/clamav \ && mkdir -p /var/log/clamav \ @@ -25,37 +24,38 @@ RUN apt-get update \ # Set ownership and permissions && chown node:node /home/node/app \ # && chown -R node:clamav /var/lib/clamav /usr/local/share/clamav /etc/clamav /var/run/clamav \ - && chown -R node:clamav /var/lib/clamav /usr/local/share/clamav /etc/clamav /var/run/clamav /var/log/clamav \ - && chown -R node:clamav /etc/clamav \ + && chown -R clamav:clamav /var/lib/clamav /usr/local/share/clamav /etc/clamav /var/run/clamav /var/log/clamav \ && chmod 755 /tmp/clamav-logs \ && chmod 750 /var/run/clamav \ && chmod 755 /var/lib/clamav \ && chmod 755 /var/log/clamav \ # Add node user to clamav group and allow sudo for clamav commands - && usermod -a -G clamav node - # && chmod 666 /var/run/clamav/clamd.socket - # Make directories group-writable so node (as member of clamav group) can access them - # && chmod 750 /var/run/clamav /var/lib/clamav /var/log/clamav /tmp/clamav-logs + && usermod -a -G clamav node \ + && chmod g+w /var/run/clamav /var/lib/clamav /var/log/clamav /tmp/clamav-logs # Configure ClamAV - copy config files before switching user # COPY --chown=node:clamav ./*.conf /etc/clamav/ -COPY --chown=node:clamav ./*.conf /etc/clamav/ +COPY --chown=clamav:clamav ./*.conf /etc/clamav/ +# Copy entrypoint script +COPY --chown=node:node docker-entrypoint.sh /home/node/app/docker-entrypoint.sh +RUN chmod +x /home/node/app/docker-entrypoint.sh +ENV TZ="Europe/Vienna" # Setting the working directory WORKDIR /home/node/app # Changing the current active user to "node" # Download initial ClamAV database as root before switching users -USER node +USER root RUN freshclam --quiet || echo "Initial database download failed - will retry at runtime" -# Copy entrypoint script -COPY --chown=node:clamav docker-entrypoint.sh /home/node/app/docker-entrypoint.sh -RUN chmod +x /home/node/app/docker-entrypoint.sh -ENV TZ="Europe/Vienna" +USER node + +# Initial update of AV databases (moved after USER directive) +# RUN freshclam || true ################## Second Stage - Installing dependencies ########## @@ -82,7 +82,7 @@ RUN node ace build --ignore-ts-errors # In this final stage, we will start running the application FROM base AS production # Here, we include all the required environment variables -# ENV NODE_ENV=production +ENV NODE_ENV=production # ENV PORT=$PORT # ENV HOST=0.0.0.0 @@ -93,8 +93,7 @@ RUN npm ci --omit=dev # Copy files to the working directory from the build folder the user COPY --chown=node:node --from=build /home/node/app/build . # Expose port -# EXPOSE 3310 EXPOSE 3333 ENTRYPOINT ["/home/node/app/docker-entrypoint.sh"] # Run the command to start the server using "dumb-init" -CMD [ "dumb-init", "node", "bin/server.js" ] \ No newline at end of file +CMD [ "node", "bin/server.js" ] \ No newline at end of file diff --git a/adonisrc.ts b/adonisrc.ts index 824d4c8..e42693a 100644 --- a/adonisrc.ts +++ b/adonisrc.ts @@ -27,17 +27,17 @@ export default defineConfig({ () => import('./start/routes.js'), () => import('./start/kernel.js'), () => import('#start/validator'), - // () => import('#start/rules/unique'), - // () => import('#start/rules/translated_language'), - // () => import('#start/rules/unique_person'), - // // () => import('#start/rules/file_length'), - // // () => import('#start/rules/file_scan'), - // // () => import('#start/rules/allowed_extensions_mimetypes'), - // () => import('#start/rules/dependent_array_min_length'), - // () => import('#start/rules/referenceValidation'), - // () => import('#start/rules/valid_mimetype'), - // () => import('#start/rules/array_contains_types'), - // () => import('#start/rules/orcid'), + () => import('#start/rules/unique'), + () => import('#start/rules/translated_language'), + () => import('#start/rules/unique_person'), + // () => import('#start/rules/file_length'), + // () => import('#start/rules/file_scan'), + // () => import('#start/rules/allowed_extensions_mimetypes'), + () => import('#start/rules/dependent_array_min_length'), + () => import('#start/rules/referenceValidation'), + () => import('#start/rules/valid_mimetype'), + () => import('#start/rules/array_contains_types'), + () => import('#start/rules/orcid'), ], /* |-------------------------------------------------------------------------- @@ -72,7 +72,7 @@ export default defineConfig({ () => import('#providers/stardust_provider'), () => import('#providers/query_builder_provider'), () => import('#providers/token_worker_provider'), - () => import('#providers/rule_provider'), + // () => import('#providers/validator_provider'), // () => import('#providers/drive/provider/drive_provider'), () => import('@adonisjs/drive/drive_provider'), // () => import('@adonisjs/core/providers/vinejs_provider'), diff --git a/app/Controllers/Http/Api/DatasetController.ts b/app/Controllers/Http/Api/DatasetController.ts index 9106521..0e38e34 100644 --- a/app/Controllers/Http/Api/DatasetController.ts +++ b/app/Controllers/Http/Api/DatasetController.ts @@ -1,7 +1,6 @@ import type { HttpContext } from '@adonisjs/core/http'; import Dataset from '#models/dataset'; import { StatusCodes } from 'http-status-codes'; -import DatasetReference from '#models/dataset_reference'; // node ace make:controller Author export default class DatasetController { @@ -82,11 +81,11 @@ export default class DatasetController { .preload('licenses') .preload('references') .preload('project') - // .preload('referenced_by', (builder) => { - // builder.preload('dataset', (builder) => { - // builder.preload('identifier'); - // }); - // }) + .preload('referenced_by', (builder) => { + builder.preload('dataset', (builder) => { + builder.preload('identifier'); + }); + }) .preload('files', (builder) => { builder.preload('hashvalues'); }) @@ -99,17 +98,7 @@ export default class DatasetController { }); } - // Build the version chain - const versionChain = await this.buildVersionChain(dataset); - - // Add version chain to response - const responseData = { - ...dataset.toJSON(), - versionChain: versionChain, - }; - - // return response.status(StatusCodes.OK).json(dataset); - return response.status(StatusCodes.OK).json(responseData); + return response.status(StatusCodes.OK).json(dataset); } catch (error) { return response.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ message: error.message || `Error retrieving Dataset with publish_id=${params.publish_id}.`, @@ -170,11 +159,11 @@ export default class DatasetController { .preload('licenses') .preload('references') .preload('project') - // .preload('referenced_by', (builder) => { - // builder.preload('dataset', (builder) => { - // builder.preload('identifier'); - // }); - // }) + .preload('referenced_by', (builder) => { + builder.preload('dataset', (builder) => { + builder.preload('identifier'); + }); + }) .preload('files', (builder) => { builder.preload('hashvalues'); }) @@ -186,139 +175,12 @@ export default class DatasetController { message: `Cannot find Dataset with identifier=${identifierValue}.`, }); } - // Build the version chain - const versionChain = await this.buildVersionChain(dataset); - // Add version chain to response - const responseData = { - ...dataset.toJSON(), - versionChain: versionChain, - }; - - // return response.status(StatusCodes.OK).json(dataset); - return response.status(StatusCodes.OK).json(responseData); + return response.status(StatusCodes.OK).json(dataset); } catch (error) { return response.status(StatusCodes.INTERNAL_SERVER_ERROR).json({ message: error.message || `Error retrieving Dataset with identifier=${identifierValue}.`, }); } } - - /** - * Build the complete version chain for a dataset - * Traverses both backwards (previous versions) and forwards (newer versions) - */ - private async buildVersionChain(dataset: Dataset) { - const versionChain = { - current: { - id: dataset.id, - publish_id: dataset.publish_id, - doi: dataset.identifier?.value || null, - main_title: dataset.mainTitle || null, - server_date_published: dataset.server_date_published, - }, - previousVersions: [] as any[], - newerVersions: [] as any[], - }; - - // Get all previous versions (going backwards in time) - versionChain.previousVersions = await this.getPreviousVersions(dataset.id); - - // Get all newer versions (going forwards in time) - versionChain.newerVersions = await this.getNewerVersions(dataset.id); - - return versionChain; - } - - /** - * Recursively get all previous versions - */ - private async getPreviousVersions(datasetId: number, visited: Set = new Set()): Promise { - // Prevent infinite loops - if (visited.has(datasetId)) { - return []; - } - visited.add(datasetId); - - const previousVersions: any[] = []; - - // Find references where this dataset "IsNewVersionOf" another dataset - const previousRefs = await DatasetReference.query() - .where('document_id', datasetId) - .where('relation', 'IsNewVersionOf') - .whereNotNull('related_document_id'); - - for (const ref of previousRefs) { - if (!ref.related_document_id) continue; - - const previousDataset = await Dataset.query() - .where('id', ref.related_document_id) - .preload('identifier') - .preload('titles') - .first(); - - if (previousDataset) { - const versionInfo = { - id: previousDataset.id, - publish_id: previousDataset.publish_id, - doi: previousDataset.identifier?.value || null, - main_title: previousDataset.mainTitle || null, - server_date_published: previousDataset.server_date_published, - relation: 'IsPreviousVersionOf', // From perspective of current dataset - }; - - previousVersions.push(versionInfo); - - // Recursively get even older versions - const olderVersions = await this.getPreviousVersions(previousDataset.id, visited); - previousVersions.push(...olderVersions); - } - } - - return previousVersions; - } - - /** - * Recursively get all newer versions - */ - private async getNewerVersions(datasetId: number, visited: Set = new Set()): Promise { - // Prevent infinite loops - if (visited.has(datasetId)) { - return []; - } - visited.add(datasetId); - - const newerVersions: any[] = []; - - // Find references where this dataset "IsPreviousVersionOf" another dataset - const newerRefs = await DatasetReference.query() - .where('document_id', datasetId) - .where('relation', 'IsPreviousVersionOf') - .whereNotNull('related_document_id'); - - for (const ref of newerRefs) { - if (!ref.related_document_id) continue; - - const newerDataset = await Dataset.query().where('id', ref.related_document_id).preload('identifier').preload('titles').first(); - - if (newerDataset) { - const versionInfo = { - id: newerDataset.id, - publish_id: newerDataset.publish_id, - doi: newerDataset.identifier?.value || null, - main_title: newerDataset.mainTitle || null, - server_date_published: newerDataset.server_date_published, - relation: 'IsNewVersionOf', // From perspective of current dataset - }; - - newerVersions.push(versionInfo); - - // Recursively get even newer versions - const evenNewerVersions = await this.getNewerVersions(newerDataset.id, visited); - newerVersions.push(...evenNewerVersions); - } - } - - return newerVersions; - } } diff --git a/app/Controllers/Http/Api/FileController.ts b/app/Controllers/Http/Api/FileController.ts index 8a400ad..bfcbae2 100644 --- a/app/Controllers/Http/Api/FileController.ts +++ b/app/Controllers/Http/Api/FileController.ts @@ -25,10 +25,10 @@ export default class FileController { const dataset = file.dataset; // Files from unpublished datasets are now blocked if (dataset.server_state !== 'published') { - return response.status(StatusCodes.FORBIDDEN).send({ - message: `File access denied: Dataset is not published.`, - }); - } + return response.status(StatusCodes.FORBIDDEN).send({ + message: `File access denied: Dataset is not published.`, + }); + } if (dataset && this.isUnderEmbargo(dataset.embargo_date)) { return response.status(StatusCodes.FORBIDDEN).send({ message: `File is under embargo until ${dataset.embargo_date?.toFormat('yyyy-MM-dd')}`, @@ -36,26 +36,12 @@ export default class FileController { } // Proceed with file download - const filePath = '/storage/app/data/' + file.pathName; + const filePath = '/storage/app/data/' + file.pathName; const fileExt = file.filePath.split('.').pop() || ''; - // const fileName = file.label + fileExt; - const fileName = file.label.toLowerCase().endsWith(`.${fileExt.toLowerCase()}`) ? file.label : `${file.label}.${fileExt}`; - - // Determine if file can be previewed inline in browser - const canPreviewInline = (mimeType: string): boolean => { - const type = mimeType.toLowerCase(); - return ( - type === 'application/pdf' || - type.startsWith('image/') || - type.startsWith('text/') || - type === 'application/json' || - type === 'application/xml' || - // Uncomment if you want video/audio inline - type.startsWith('video/') || - type.startsWith('audio/') - ); - }; - const disposition = canPreviewInline(file.mimeType) ? 'inline' : 'attachment'; + // const fileName = file.label + fileExt; + const fileName = file.label.toLowerCase().endsWith(`.${fileExt.toLowerCase()}`) + ? file.label + : `${file.label}.${fileExt}`; try { fs.accessSync(filePath, fs.constants.R_OK); //| fs.constants.W_OK); @@ -65,7 +51,7 @@ export default class FileController { .header('Cache-Control', 'no-cache private') .header('Content-Description', 'File Transfer') .header('Content-Type', file.mimeType) - .header('Content-Disposition', `${disposition}; filename="${fileName}"`) + .header('Content-Disposition', 'inline; filename=' + fileName) .header('Content-Transfer-Encoding', 'binary') .header('Access-Control-Allow-Origin', '*') .header('Access-Control-Allow-Methods', 'GET'); diff --git a/app/Controllers/Http/Editor/DatasetController.ts b/app/Controllers/Http/Editor/DatasetController.ts index 04c450d..8911ed7 100644 --- a/app/Controllers/Http/Editor/DatasetController.ts +++ b/app/Controllers/Http/Editor/DatasetController.ts @@ -3,7 +3,7 @@ import { Client } from '@opensearch-project/opensearch'; import User from '#models/user'; import Dataset from '#models/dataset'; import DatasetIdentifier from '#models/dataset_identifier'; -import DatasetXmlSerializer from '#app/Library/DatasetXmlSerializer'; +import XmlModel from '#app/Library/XmlModel'; import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; import { create } from 'xmlbuilder2'; import { readFileSync } from 'fs'; @@ -574,88 +574,55 @@ export default class DatasetsController { public async doiStore({ request, response }: HttpContext) { const dataId = request.param('publish_id'); - - // Load dataset with minimal required relationships - const dataset = await Dataset.query().where('publish_id', dataId).firstOrFail(); - - const prefix = process.env.DATACITE_PREFIX || ''; - const base_domain = process.env.BASE_DOMAIN || ''; - - // Generate DOI metadata XML + const dataset = await Dataset.query() + // .preload('xmlCache') + .where('publish_id', dataId) + .firstOrFail(); const xmlMeta = (await Index.getDoiRegisterString(dataset)) as string; - // Prepare DOI registration data - const doiValue = `${prefix}/tethys.${dataset.publish_id}`; //'10.21388/tethys.213' - const landingPageUrl = `https://doi.${getDomain(base_domain)}/${prefix}/tethys.${dataset.publish_id}`; //https://doi.dev.tethys.at/10.21388/tethys.213 + let prefix = ''; + let base_domain = ''; + // const datacite_environment = process.env.DATACITE_ENVIRONMENT || 'debug'; + prefix = process.env.DATACITE_PREFIX || ''; + base_domain = process.env.BASE_DOMAIN || ''; - // Register DOI with DataCite + // register DOI: + const doiValue = prefix + '/tethys.' + dataset.publish_id; //'10.21388/tethys.213' + const landingPageUrl = 'https://doi.' + getDomain(base_domain) + '/' + prefix + '/tethys.' + dataset.publish_id; //https://doi.dev.tethys.at/10.21388/tethys.213 const doiClient = new DoiClient(); const dataciteResponse = await doiClient.registerDoi(doiValue, xmlMeta, landingPageUrl); - if (dataciteResponse?.status !== 201) { + if (dataciteResponse?.status === 201) { + // if response OK 201; save the Identifier value into db + const doiIdentifier = new DatasetIdentifier(); + doiIdentifier.value = doiValue; + doiIdentifier.dataset_id = dataset.id; + doiIdentifier.type = 'doi'; + doiIdentifier.status = 'findable'; + + // save updated dataset to db an index to OpenSearch + try { + // save modified date of datset for re-caching model in db an update the search index + dataset.server_date_modified = DateTime.now(); + // autoUpdate: true only triggers when dataset.save() is called, not when saving a related model like below + await dataset.save(); + await dataset.related('identifier').save(doiIdentifier); + const index_name = 'tethys-records'; + await Index.indexDocument(dataset, index_name); + } catch (error) { + logger.error(`${__filename}: Indexing document ${dataset.id} failed: ${error.message}`); + // Log the error or handle it as needed + throw new HttpException(error.message); + } + return response.toRoute('editor.dataset.list').flash('message', 'You have successfully created a DOI for the dataset!'); + } else { const message = `Unexpected DataCite MDS response code ${dataciteResponse?.status}`; + // Log the error or handle it as needed throw new DoiClientException(dataciteResponse?.status, message); } - - // DOI registration successful - persist and index - try { - // Save identifier - await this.persistDoiAndIndex(dataset, doiValue); - - return response.toRoute('editor.dataset.list').flash('message', 'You have successfully created a DOI for the dataset!'); - } catch (error) { - logger.error(`${__filename}: Failed to persist DOI and index dataset ${dataset.id}: ${error.message}`); - throw new HttpException(error.message); - } - // return response.toRoute('editor.dataset.list').flash('message', xmlMeta); } - /** - * Persist DOI identifier and update search index - * Handles cache invalidation to ensure fresh indexing - */ - private async persistDoiAndIndex(dataset: Dataset, doiValue: string): Promise { - // Create DOI identifier - const doiIdentifier = new DatasetIdentifier(); - doiIdentifier.value = doiValue; - doiIdentifier.dataset_id = dataset.id; - doiIdentifier.type = 'doi'; - doiIdentifier.status = 'findable'; - - // Save identifier (this will trigger database insert) - await dataset.related('identifier').save(doiIdentifier); - - // Update dataset modification timestamp to reflect the change - dataset.server_date_modified = DateTime.now(); - await dataset.save(); - - // Invalidate stale XML cache - await this.invalidateDatasetCache(dataset); - - // Reload dataset with fresh state for indexing - const freshDataset = await Dataset.query().where('id', dataset.id).preload('identifier').preload('xmlCache').firstOrFail(); - - // Index to OpenSearch with fresh data - const index_name = process.env.OPENSEARCH_INDEX || 'tethys-records'; - await Index.indexDocument(freshDataset, index_name); - - logger.info(`Successfully created DOI ${doiValue} and indexed dataset ${dataset.id}`); - } - - /** - * Invalidate XML cache for dataset - * Ensures fresh cache generation on next access - */ - private async invalidateDatasetCache(dataset: Dataset): Promise { - await dataset.load('xmlCache'); - - if (dataset.xmlCache) { - await dataset.xmlCache.delete(); - logger.debug(`Invalidated XML cache for dataset ${dataset.id}`); - } - } - public async show({}: HttpContext) {} public async edit({ request, inertia, response }: HttpContext) { @@ -1157,14 +1124,14 @@ export default class DatasetsController { // Set the response headers and download the file response - .header('Cache-Control', 'no-cache private') - .header('Content-Description', 'File Transfer') - .header('Content-Type', file.mime_type || 'application/octet-stream') - // .header('Content-Disposition', 'inline; filename=' + fileName) - .header('Content-Transfer-Encoding', 'binary') - .header('Access-Control-Allow-Origin', '*') - .header('Access-Control-Allow-Methods', 'GET'); - response.attachment(fileName); + .header('Cache-Control', 'no-cache private') + .header('Content-Description', 'File Transfer') + .header('Content-Type', file.mime_type || 'application/octet-stream') + // .header('Content-Disposition', 'inline; filename=' + fileName) + .header('Content-Transfer-Encoding', 'binary') + .header('Access-Control-Allow-Origin', '*') + .header('Access-Control-Allow-Methods', 'GET'); + response.attachment(fileName); return response.download(filePath); } @@ -1177,18 +1144,19 @@ export default class DatasetsController { } } - private async getDatasetXmlDomNode(dataset: Dataset): Promise { - const serializer = new DatasetXmlSerializer(dataset).enableCaching().excludeEmptyFields(); + private async getDatasetXmlDomNode(dataset: Dataset) { + const xmlModel = new XmlModel(dataset); // xmlModel.setModel(dataset); - - // Load existing cache if available - await dataset.load('xmlCache'); + xmlModel.excludeEmptyFields(); + xmlModel.caching = true; + // const cache = dataset.xmlCache ? dataset.xmlCache : null; + // dataset.load('xmlCache'); if (dataset.xmlCache) { - serializer.setCache(dataset.xmlCache); + xmlModel.xmlCache = dataset.xmlCache; } // return cache.getDomDocument(); - const xmlDocument : XMLBuilder | null = await serializer.toXmlDocument(); - return xmlDocument; + const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); + return domDocument; } } diff --git a/app/Controllers/Http/Oai/OaiController.ts b/app/Controllers/Http/Oai/OaiController.ts index 47d1708..db49a32 100644 --- a/app/Controllers/Http/Oai/OaiController.ts +++ b/app/Controllers/Http/Oai/OaiController.ts @@ -15,7 +15,7 @@ import { OaiModelException, BadOaiModelException } from '#app/exceptions/OaiMode import Dataset from '#models/dataset'; import Collection from '#models/collection'; import { getDomain, preg_match } from '#app/utils/utility-functions'; -import DatasetXmlSerializer from '#app/Library/DatasetXmlSerializer'; +import XmlModel from '#app/Library/XmlModel'; import logger from '@adonisjs/core/services/logger'; import ResumptionToken from '#app/Library/Oai/ResumptionToken'; // import Config from '@ioc:Adonis/Core/Config'; @@ -292,7 +292,7 @@ export default class OaiController { this.xsltParameter['repIdentifier'] = repIdentifier; const datasetNode = this.xml.root().ele('Datasets'); - const paginationParams: PagingParameter = { + const paginationParams: PagingParameter ={ cursor: 0, totalLength: 0, start: maxRecords + 1, @@ -333,7 +333,7 @@ export default class OaiController { } private async handleNoResumptionToken(oaiRequest: Dictionary, paginationParams: PagingParameter, maxRecords: number) { - this.validateMetadataPrefix(oaiRequest, paginationParams); + this.validateMetadataPrefix(oaiRequest, paginationParams); const finder: ModelQueryBuilderContract = Dataset.query().whereIn( 'server_state', this.deliveringDocumentStates, @@ -347,20 +347,16 @@ export default class OaiController { finder: ModelQueryBuilderContract, paginationParams: PagingParameter, oaiRequest: Dictionary, - maxRecords: number, + maxRecords: number ) { const totalResult = await finder .clone() .count('* as total') .first() .then((res) => res?.$extras.total); - paginationParams.totalLength = Number(totalResult); + paginationParams.totalLength = Number(totalResult); - const combinedRecords: Dataset[] = await finder - .select('publish_id') - .orderBy('publish_id') - .offset(0) - .limit(maxRecords * 2); + const combinedRecords: Dataset[] = await finder.select('publish_id').orderBy('publish_id').offset(0).limit(maxRecords*2); paginationParams.activeWorkIds = combinedRecords.slice(0, 100).map((dat) => Number(dat.publish_id)); paginationParams.nextDocIds = combinedRecords.slice(100).map((dat) => Number(dat.publish_id)); @@ -606,17 +602,19 @@ export default class OaiController { } private async getDatasetXmlDomNode(dataset: Dataset) { - const serializer = new DatasetXmlSerializer(dataset).enableCaching().excludeEmptyFields(); - + const xmlModel = new XmlModel(dataset); + // xmlModel.setModel(dataset); + xmlModel.excludeEmptyFields(); + xmlModel.caching = true; // const cache = dataset.xmlCache ? dataset.xmlCache : null; // dataset.load('xmlCache'); if (dataset.xmlCache) { - serializer.setCache(dataset.xmlCache); + xmlModel.xmlCache = dataset.xmlCache; } - // return cache.toXmlDocument(); - const xmlDocument: XMLBuilder | null = await serializer.toXmlDocument(); - return xmlDocument; + // return cache.getDomDocument(); + const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); + return domDocument; } private addSpecInformation(domNode: XMLBuilder, information: string) { diff --git a/app/Library/DatasetXmlSerializer.ts b/app/Library/DatasetXmlSerializer.ts deleted file mode 100644 index f84d3b7..0000000 --- a/app/Library/DatasetXmlSerializer.ts +++ /dev/null @@ -1,231 +0,0 @@ -import DocumentXmlCache from '#models/DocumentXmlCache'; -import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; -import Dataset from '#models/dataset'; -import Strategy from './Strategy.js'; -import { builder } from 'xmlbuilder2'; -import logger from '@adonisjs/core/services/logger'; - -/** - * Configuration for XML serialization - * - * @interface XmlSerializationConfig - */ -export interface XmlSerializationConfig { - /** The dataset model to serialize */ - model: Dataset; - /** DOM representation (if available) */ - dom?: XMLBuilder; - /** Fields to exclude from serialization */ - excludeFields: Array; - /** Whether to exclude empty fields */ - excludeEmpty: boolean; - /** Base URI for xlink:ref elements */ - baseUri: string; -} - -/** - * Options for controlling serialization behavior - */ -export interface SerializationOptions { - /** Enable XML caching */ - enableCaching?: boolean; - /** Exclude empty fields from output */ - excludeEmptyFields?: boolean; - /** Custom base URI */ - baseUri?: string; - /** Fields to exclude */ - excludeFields?: string[]; -} - -/** - * DatasetXmlSerializer - * - * Handles XML serialization of Dataset models with intelligent caching. - * Generates XML representations and manages cache lifecycle to optimize performance. - * - * @example - * ```typescript - * const serializer = new DatasetXmlSerializer(dataset); - * serializer.enableCaching(); - * serializer.excludeEmptyFields(); - * - * const xmlDocument = await serializer.toXmlDocument(); - * ``` - */ -export default class DatasetXmlSerializer { - private readonly config: XmlSerializationConfig; - private readonly strategy: Strategy; - private cache: DocumentXmlCache | null = null; - private cachingEnabled = false; - - constructor(dataset: Dataset, options: SerializationOptions = {}) { - this.config = { - model: dataset, - excludeEmpty: options.excludeEmptyFields ?? false, - baseUri: options.baseUri ?? '', - excludeFields: options.excludeFields ?? [], - }; - - this.strategy = new Strategy({ - excludeEmpty: options.excludeEmptyFields ?? false, - baseUri: options.baseUri ?? '', - excludeFields: options.excludeFields ?? [], - model: dataset, - }); - - if (options.enableCaching) { - this.cachingEnabled = true; - } - } - - /** - * Enable caching for XML generation - * When enabled, generated XML is stored in database for faster retrieval - */ - public enableCaching(): this { - this.cachingEnabled = true; - return this; - } - - /** - * Disable caching for XML generation - */ - public disableCaching(): this { - this.cachingEnabled = false; - return this; - } - - set model(model: Dataset) { - this.config.model = model; - } - - /** - * Configure to exclude empty fields from XML output - */ - public excludeEmptyFields(): this { - this.config.excludeEmpty = true; - return this; - } - - /** - * Set the cache instance directly (useful when preloading) - * @param cache - The DocumentXmlCache instance - */ - public setCache(cache: DocumentXmlCache): this { - this.cache = cache; - return this; - } - - /** - * Get the current cache instance - */ - public getCache(): DocumentXmlCache | null { - return this.cache; - } - - /** - * Get DOM document with intelligent caching - * Returns cached version if valid, otherwise generates new document - */ - public async toXmlDocument(): Promise { - const dataset = this.config.model; - - // Try to get from cache first - let cachedDocument: XMLBuilder | null = await this.retrieveFromCache(); - - if (cachedDocument) { - logger.debug(`Using cached XML for dataset ${dataset.id}`); - return cachedDocument; - } - - // Generate fresh document - logger.debug(`[DatasetXmlSerializer] Cache miss - generating fresh XML for dataset ${dataset.id}`); - const freshDocument = await this.strategy.createDomDocument(); - - if (!freshDocument) { - logger.error(`[DatasetXmlSerializer] Failed to generate XML for dataset ${dataset.id}`); - return null; - } - - // Cache if caching is enabled - if (this.cachingEnabled) { - await this.persistToCache(freshDocument, dataset); - } - - // Extract the dataset-specific node - return this.extractDatasetNode(freshDocument); - } - - /** - * Generate XML string representation - * Convenience method that converts XMLBuilder to string - */ - public async toXmlString(): Promise { - const document = await this.toXmlDocument(); - return document ? document.end({ prettyPrint: false }) : null; - } - - /** - * Persist generated XML document to cache - * Non-blocking - failures are logged but don't interrupt the flow - */ - private async persistToCache(domDocument: XMLBuilder, dataset: Dataset): Promise { - try { - this.cache = this.cache || new DocumentXmlCache(); - this.cache.document_id = dataset.id; - this.cache.xml_version = 1; - this.cache.server_date_modified = dataset.server_date_modified.toFormat('yyyy-MM-dd HH:mm:ss'); - this.cache.xml_data = domDocument.end(); - - await this.cache.save(); - logger.debug(`Cached XML for dataset ${dataset.id}`); - } catch (error) { - logger.error(`Failed to cache XML for dataset ${dataset.id}: ${error.message}`); - // Don't throw - caching failure shouldn't break the flow - } - } - - /** - * Extract the Rdr_Dataset node from full document - */ - private extractDatasetNode(domDocument: XMLBuilder): XMLBuilder | null { - const node = domDocument.find((n) => n.node.nodeName === 'Rdr_Dataset', false, true)?.node; - - if (node) { - return builder({ version: '1.0', encoding: 'UTF-8', standalone: true }, node); - } - - return domDocument; - } - - /** - * Attempt to retrieve valid cached XML document - * Returns null if cache doesn't exist or is stale - */ - private async retrieveFromCache(): Promise { - const dataset: Dataset = this.config.model; - if (!this.cache) { - return null; - } - - // Check if cache is still valid - const actuallyCached = await DocumentXmlCache.hasValidEntry(dataset.id, dataset.server_date_modified); - - if (!actuallyCached) { - logger.debug(`Cache invalid for dataset ${dataset.id}`); - return null; - } - - //cache is actual return cached document - try { - if (this.cache) { - return this.cache.getDomDocument(); - } else { - return null; - } - } catch (error) { - logger.error(`Failed to retrieve cached document for dataset ${dataset.id}: ${error.message}`); - return null; - } - } -} diff --git a/app/Library/Utils/Index.ts b/app/Library/Utils/Index.ts index 20253a4..9bc21f7 100644 --- a/app/Library/Utils/Index.ts +++ b/app/Library/Utils/Index.ts @@ -2,7 +2,7 @@ import Dataset from '#models/dataset'; import { Client } from '@opensearch-project/opensearch'; import { create } from 'xmlbuilder2'; import SaxonJS from 'saxon-js'; -import DatasetXmlSerializer from '#app/Library/DatasetXmlSerializer'; +import XmlModel from '#app/Library/XmlModel'; import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; import logger from '@adonisjs/core/services/logger'; import { readFileSync } from 'fs'; @@ -72,42 +72,31 @@ export default { } }, - /** - * Index a dataset document to OpenSearch/Elasticsearch - */ async indexDocument(dataset: Dataset, index_name: string): Promise { try { - // Load XSLT transformation file - const xsltProc = readFileSync('public/assets2/solr.sef.json'); + const proc = readFileSync('public/assets2/solr.sef.json'); + const doc: string = await this.getTransformedString(dataset, proc); - // Transform dataset to JSON document - const jsonDoc: string = await this.getTransformedString(dataset, xsltProc); - - const document = JSON.parse(jsonDoc); - - // Index document to OpenSearch with doument json body + let document = JSON.parse(doc); await this.client.index({ id: dataset.publish_id?.toString(), index: index_name, body: document, - refresh: true, // make immediately searchable + refresh: true, }); - logger.info(`Dataset ${dataset.publish_id} successfully indexed to ${index_name}`); + logger.info(`dataset with publish_id ${dataset.publish_id} successfully indexed`); } catch (error) { - logger.error(`Failed to index dataset ${dataset.publish_id}: ${error.message}`); - throw error; // Re-throw to allow caller to handle + logger.error(`An error occurred while indexing datsaet with publish_id ${dataset.publish_id}.`); } }, - /** - * Transform dataset XML to JSON using XSLT - */ async getTransformedString(dataset: Dataset, proc: Buffer): Promise { - // Generate XML string from dataset - const xmlString = await this.generateDatasetXml(dataset); + let xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, ''); + const datasetNode = xml.root().ele('Dataset'); + await createXmlRecord(dataset, datasetNode); + const xmlString = xml.end({ prettyPrint: false }); try { - // Apply XSLT transformation const result = await SaxonJS.transform({ stylesheetText: proc, destination: 'serialized', @@ -119,18 +108,6 @@ export default { return ''; } }, - - /** - * Generate XML string from dataset model - */ - async generateDatasetXml(dataset: Dataset): Promise { - const xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, ''); - const datasetNode = xml.root().ele('Dataset'); - - await createXmlRecord(dataset, datasetNode); - - return xml.end({ prettyPrint: false }); - }, }; /** * Return the default global focus trap stack @@ -138,49 +115,74 @@ export default { * @return {import('focus-trap').FocusTrap[]} */ -/** - * Create complete XML record for dataset - * Handles caching and metadata enrichment - */ +// export const indexDocument = async (dataset: Dataset, index_name: string, proc: Buffer): Promise => { +// try { +// const doc = await getJsonString(dataset, proc); + +// let document = JSON.parse(doc); +// await client.index({ +// id: dataset.publish_id?.toString(), +// index: index_name, +// body: document, +// refresh: true, +// }); +// Logger.info(`dataset with publish_id ${dataset.publish_id} successfully indexed`); +// } catch (error) { +// Logger.error(`An error occurred while indexing datsaet with publish_id ${dataset.publish_id}.`); +// } +// }; + +// const getJsonString = async (dataset, proc): Promise => { +// let xml = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, ''); +// const datasetNode = xml.root().ele('Dataset'); +// await createXmlRecord(dataset, datasetNode); +// const xmlString = xml.end({ prettyPrint: false }); + +// try { +// const result = await transform({ +// stylesheetText: proc, +// destination: 'serialized', +// sourceText: xmlString, +// }); +// return result.principalResult; +// } catch (error) { +// Logger.error(`An error occurred while creating the user, error: ${error.message},`); +// return ''; +// } +// }; + const createXmlRecord = async (dataset: Dataset, datasetNode: XMLBuilder): Promise => { const domNode = await getDatasetXmlDomNode(dataset); - - if (!domNode) { - throw new Error(`Failed to generate XML DOM node for dataset ${dataset.id}`); - } - - // Enrich with landing page URL - if (dataset.publish_id) { - addLandingPageAttribute(domNode, dataset.publish_id.toString()); - } - - // Add data type specification - addSpecInformation(domNode, `data-type:${dataset.type}`); - - // Add collection information - if (dataset.collections) { - for (const coll of dataset.collections) { - const collRole = coll.collectionRole; - addSpecInformation(domNode, `${collRole.oai_name}:${coll.number}`); + if (domNode) { + // add frontdoor url and data-type + dataset.publish_id && addLandingPageAttribute(domNode, dataset.publish_id.toString()); + addSpecInformation(domNode, 'data-type:' + dataset.type); + if (dataset.collections) { + for (const coll of dataset.collections) { + const collRole = coll.collectionRole; + addSpecInformation(domNode, collRole.oai_name + ':' + coll.number); + } } - } - datasetNode.import(domNode); + datasetNode.import(domNode); + } }; const getDatasetXmlDomNode = async (dataset: Dataset): Promise => { - const serializer = new DatasetXmlSerializer(dataset).enableCaching().excludeEmptyFields(); + const xmlModel = new XmlModel(dataset); // xmlModel.setModel(dataset); - - // Load cache relationship if not already loaded + xmlModel.excludeEmptyFields(); + xmlModel.caching = true; + // const cache = dataset.xmlCache ? dataset.xmlCache : null; + // dataset.load('xmlCache'); await dataset.load('xmlCache'); if (dataset.xmlCache) { - serializer.setCache(dataset.xmlCache); + xmlModel.xmlCache = dataset.xmlCache; } - // Generate or retrieve cached DOM document - const xmlDocument: XMLBuilder | null = await serializer.toXmlDocument(); - return xmlDocument; + // return cache.getDomDocument(); + const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); + return domDocument; }; const addLandingPageAttribute = (domNode: XMLBuilder, dataid: string) => { @@ -190,6 +192,6 @@ const addLandingPageAttribute = (domNode: XMLBuilder, dataid: string) => { domNode.att('landingpage', url); }; -const addSpecInformation = (domNode: XMLBuilder, information: string) => { +const addSpecInformation= (domNode: XMLBuilder, information: string) => { domNode.ele('SetSpec').att('Value', information); -}; +}; \ No newline at end of file diff --git a/app/Library/XmlModel.ts b/app/Library/XmlModel.ts new file mode 100644 index 0000000..6f76474 --- /dev/null +++ b/app/Library/XmlModel.ts @@ -0,0 +1,129 @@ +import DocumentXmlCache from '#models/DocumentXmlCache'; +import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; +import Dataset from '#models/dataset'; +import Strategy from './Strategy.js'; +import { DateTime } from 'luxon'; +import { builder } from 'xmlbuilder2'; + +/** + * This is the description of the interface + * + * @interface Conf + * @member {Model} model holds the current dataset model + * @member {XMLBuilder} dom holds the current DOM representation + * @member {Array} excludeFields List of fields to skip on serialization. + * @member {boolean} excludeEmpty True, if empty fields get excluded from serialization. + * @member {string} baseUri Base URI for xlink:ref elements + */ +export interface Conf { + model: Dataset; + dom?: XMLBuilder; + excludeFields: Array; + excludeEmpty: boolean; + baseUri: string; +} + +export default class XmlModel { + private config: Conf; + // private strategy = null; + private cache: DocumentXmlCache | null = null; + private _caching = false; + private strategy: Strategy; + + constructor(dataset: Dataset) { + // $this->strategy = new Strategy();// Opus_Model_Xml_Version1; + // $this->config = new Conf(); + // $this->strategy->setup($this->config); + + this.config = { + excludeEmpty: false, + baseUri: '', + excludeFields: [], + model: dataset, + }; + + this.strategy = new Strategy({ + excludeEmpty: true, + baseUri: '', + excludeFields: [], + model: dataset, + }); + } + + set model(model: Dataset) { + this.config.model = model; + } + + public excludeEmptyFields(): void { + this.config.excludeEmpty = true; + } + + get xmlCache(): DocumentXmlCache | null { + return this.cache; + } + + set xmlCache(cache: DocumentXmlCache) { + this.cache = cache; + } + + get caching(): boolean { + return this._caching; + } + set caching(caching: boolean) { + this._caching = caching; + } + + public async getDomDocument(): Promise { + const dataset = this.config.model; + + let domDocument: XMLBuilder | null = await this.getDomDocumentFromXmlCache(); + if (domDocument == null) { + domDocument = await this.strategy.createDomDocument(); + // domDocument = create({ version: '1.0', encoding: 'UTF-8', standalone: true }, ''); + if (this._caching) { + // caching is desired: + this.cache = this.cache || new DocumentXmlCache(); + this.cache.document_id = dataset.id; + this.cache.xml_version = 1; // (int)$this->strategy->getVersion(); + this.cache.server_date_modified = dataset.server_date_modified.toFormat('yyyy-MM-dd HH:mm:ss'); + this.cache.xml_data = domDocument.end(); + await this.cache.save(); + } + const node = domDocument.find( + (n) => { + const test = n.node.nodeName == 'Rdr_Dataset'; + return test; + }, + false, + true, + )?.node; + if (node != undefined) { + domDocument = builder({ version: '1.0', encoding: 'UTF-8', standalone: true }, node); + } + } + return domDocument; + } + + private async getDomDocumentFromXmlCache(): Promise { + const dataset: Dataset = this.config.model; + if (!this.cache) { + return null; + } + //.toFormat('YYYY-MM-DD HH:mm:ss'); + let date: DateTime = dataset.server_date_modified; + const actuallyCached: boolean = await DocumentXmlCache.hasValidEntry(dataset.id, date); + if (!actuallyCached) { + return null; + } + //cache is actual return it for oai: + try { + if (this.cache) { + return this.cache.getDomDocument(); + } else { + return null; + } + } catch (error) { + return null; + } + } +} diff --git a/app/models/DocumentXmlCache.ts b/app/models/DocumentXmlCache.ts index de8defc..ed7315e 100644 --- a/app/models/DocumentXmlCache.ts +++ b/app/models/DocumentXmlCache.ts @@ -4,8 +4,7 @@ import { builder, create } from 'xmlbuilder2'; import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; import db from '@adonisjs/lucid/services/db'; import { DateTime } from 'luxon'; -import type { BelongsTo } from '@adonisjs/lucid/types/relations'; -import logger from '@adonisjs/core/services/logger'; +import type { BelongsTo } from "@adonisjs/lucid/types/relations"; export default class DocumentXmlCache extends BaseModel { public static namingStrategy = new SnakeCaseNamingStrategy(); @@ -67,38 +66,33 @@ export default class DocumentXmlCache extends BaseModel { } /** - * Check if a valid (non-stale) cache entry exists - * Cache is valid only if it was created AFTER the dataset's last modification + * Check if a dataset in a specific xml version is already cached or not. * - * @param datasetId - The dataset ID to check - * @param datasetServerDateModified - The dataset's last modification timestamp - * @returns true if valid cache exists, false otherwise + * @param mixed datasetId + * @param mixed serverDateModified + * @returns {Promise} Returns true on cached hit else false. */ + // public static async hasValidEntry(datasetId: number, datasetServerDateModified: DateTime): Promise { + // // const formattedDate = dayjs(datasetServerDateModified).format('YYYY-MM-DD HH:mm:ss'); + + // const query = Database.from(this.table) + // .where('document_id', datasetId) + // .where('server_date_modified', '2023-08-17 16:51:03') + // .first(); + + // const row = await query; + // return !!row; + // } + + // Assuming 'DocumentXmlCache' has a table with a 'server_date_modified' column in your database public static async hasValidEntry(datasetId: number, datasetServerDateModified: DateTime): Promise { const serverDateModifiedString: string = datasetServerDateModified.toFormat('yyyy-MM-dd HH:mm:ss'); // Convert DateTime to ISO string - - const row = await db - .from(this.table) + const query = db.from(this.table) .where('document_id', datasetId) - .where('server_date_modified', '>', serverDateModifiedString) // Check if server_date_modified is newer or equal + .where('server_date_modified', '>=', serverDateModifiedString) // Check if server_date_modified is newer or equal .first(); - const isValid = !!row; - - if (isValid) { - logger.debug(`Valid cache found for dataset ${datasetId}`); - } else { - logger.debug(`No valid cache for dataset ${datasetId} (dataset modified: ${serverDateModifiedString})`); - } - - return isValid; - } - - /** - * Invalidate (delete) cache entry - */ - public async invalidate(): Promise { - await this.delete(); - logger.debug(`Invalidated cache for document ${this.document_id}`); + const row = await query; + return !!row; } } diff --git a/app/validators/dataset.ts b/app/validators/dataset.ts index f670b81..0429168 100644 --- a/app/validators/dataset.ts +++ b/app/validators/dataset.ts @@ -55,8 +55,8 @@ export const createDatasetValidator = vine.compile( .translatedLanguage({ mainLanguageField: 'language', typeField: 'type' }), }), ) - // .minLength(1), - .arrayContainsTypes({ typeA: 'abstract', typeB: 'translated' }), + // .minLength(1), + .arrayContainsTypes({ typeA: 'abstract', typeB: 'translated' }), authors: vine .array( vine.object({ @@ -160,8 +160,7 @@ export const createDatasetValidator = vine.compile( .fileScan({ removeInfected: true }), ) .minLength(1), - }), -); + }),); /** * Validates the dataset's update action @@ -310,13 +309,11 @@ export const updateDatasetValidator = vine.compile( .fileScan({ removeInfected: true }), ) .dependentArrayMinLength({ dependentArray: 'fileInputs', min: 1 }), - fileInputs: vine - .array( - vine.object({ - label: vine.string().trim().maxLength(100), - }), - ) - .optional(), + fileInputs: vine.array( + vine.object({ + label: vine.string().trim().maxLength(100), + }), + ).optional(), }), ); @@ -504,7 +501,7 @@ let messagesProvider = new SimpleMessagesProvider({ 'files.array.minLength': 'At least {{ min }} file upload is required.', 'files.*.size': 'file size is to big', 'files.*.extnames': 'file extension is not supported', - 'embargo_date.date.afterOrEqual': `Embargo date must be on or after ${dayjs().add(10, 'day').format('DD.MM.YYYY')}`, + 'embargo_date.date.afterOrEqual': `Embargo date must be on or after ${dayjs().add(10, 'day').format('DD.MM.YYYY')}`, }); createDatasetValidator.messagesProvider = messagesProvider; diff --git a/app/validators/role.ts b/app/validators/role.ts index 81262d9..61e8ecd 100644 --- a/app/validators/role.ts +++ b/app/validators/role.ts @@ -8,20 +8,20 @@ export const createRoleValidator = vine.compile( vine.object({ name: vine .string() + .isUnique({ table: 'roles', column: 'name' }) .trim() .minLength(3) .maxLength(255) - .isUnique({ table: 'roles', column: 'name' }) - .regex(/^[a-zA-Z0-9]+$/), // Must be alphanumeric + .regex(/^[a-zA-Z0-9]+$/), //Must be alphanumeric with hyphens or underscores display_name: vine .string() + .isUnique({ table: 'roles', column: 'display_name' }) .trim() .minLength(3) .maxLength(255) - .isUnique({ table: 'roles', column: 'display_name' }) .regex(/^[a-zA-Z0-9]+$/), description: vine.string().trim().escape().minLength(3).maxLength(255).optional(), - permissions: vine.array(vine.number()).minLength(1), // At least one permission required + permissions: vine.array(vine.number()).minLength(1), // define at least one permission for the new role }), ); @@ -29,28 +29,21 @@ export const updateRoleValidator = vine.withMetaData<{ roleId: number }>().compi vine.object({ name: vine .string() - .trim() - .minLength(3) - .maxLength(255) + // .unique(async (db, value, field) => { + // const result = await db.from('roles').select('id').whereNot('id', field.meta.roleId).where('name', value).first(); + // return result.length ? false : true; + // }) .isUnique({ table: 'roles', column: 'name', whereNot: (field) => field.meta.roleId, }) - .regex(/^[a-zA-Z0-9]+$/), - display_name: vine - .string() .trim() .minLength(3) - .maxLength(255) - .isUnique({ - table: 'roles', - column: 'display_name', - whereNot: (field) => field.meta.roleId, - }) - .regex(/^[a-zA-Z0-9]+$/), + .maxLength(255), + description: vine.string().trim().escape().minLength(3).maxLength(255).optional(), - permissions: vine.array(vine.number()).minLength(1), // At least one permission required + permissions: vine.array(vine.number()).minLength(1), // define at least one permission for the new role }), ); diff --git a/clamd.conf b/clamd.conf index f066387..171396d 100644 --- a/clamd.conf +++ b/clamd.conf @@ -5,23 +5,7 @@ LogSyslog no LogVerbose yes DatabaseDirectory /var/lib/clamav LocalSocket /var/run/clamav/clamd.socket -# LocalSocketMode 666 -# Optional: allow multiple threads -MaxThreads 20 -# Disable TCP socket -# TCPSocket 0 - -# TCP port address. -# Default: no -# TCPSocket 3310 -# TCP address. -# By default we bind to INADDR_ANY, probably not wise. -# Enable the following to provide some degree of protection -# from the outside world. -# Default: no -# TCPAddr 127.0.0.1 - Foreground no PidFile /var/run/clamav/clamd.pid -# LocalSocketGroup node # Changed from 'clamav' -# User node # Changed from 'clamav' - clamd runs as clamav user \ No newline at end of file +LocalSocketGroup node +User node \ No newline at end of file diff --git a/commands/fix_dataset_cross_references.ts b/commands/fix_dataset_cross_references.ts index baa2e0e..248fefd 100644 --- a/commands/fix_dataset_cross_references.ts +++ b/commands/fix_dataset_cross_references.ts @@ -9,7 +9,6 @@ import type { CommandOptions } from '@adonisjs/core/types/ace'; import { DateTime } from 'luxon'; import Dataset from '#models/dataset'; import DatasetReference from '#models/dataset_reference'; -import AppConfig from '#models/appconfig'; // import env from '#start/env'; interface MissingCrossReference { @@ -23,7 +22,6 @@ interface MissingCrossReference { relation: string; doi: string | null; reverseRelation: string; - sourceReferenceLabel: string | null; } export default class DetectMissingCrossReferences extends BaseCommand { @@ -52,17 +50,7 @@ export default class DetectMissingCrossReferences extends BaseCommand { }; // Define the allowed relations that we want to process - private readonly ALLOWED_RELATIONS = [ - 'IsNewVersionOf', - 'IsPreviousVersionOf', - 'IsVariantFormOf', - 'IsOriginalFormOf', - 'Continues', - 'IsContinuedBy', - 'HasPart', - 'IsPartOf', - ]; - // private readonly ALLOWED_RELATIONS = ['IsPreviousVersionOf', 'IsOriginalFormOf']; + private readonly ALLOWED_RELATIONS = ['IsNewVersionOf', 'IsPreviousVersionOf', 'IsVariantFormOf', 'IsOriginalFormOf']; async run() { this.logger.info('🔍 Detecting missing cross-references...'); @@ -75,18 +63,9 @@ export default class DetectMissingCrossReferences extends BaseCommand { try { const missingReferences = await this.findMissingCrossReferences(); - // Store count in AppConfig if not fixing and count >= 1 - if (!this.fix && missingReferences.length >= 1) { - await this.storeMissingCrossReferencesCount(missingReferences.length); - } - if (missingReferences.length === 0) { const filterMsg = this.publish_id ? ` for publish_id ${this.publish_id}` : ''; this.logger.success(`All cross-references are properly linked for the specified relations${filterMsg}!`); - // Clear the count if no missing references - if (!this.fix) { - await this.storeMissingCrossReferencesCount(0); - } return; } @@ -117,8 +96,6 @@ export default class DetectMissingCrossReferences extends BaseCommand { if (this.fix) { await this.fixMissingReferences(missingReferences); - // Clear the count after fixing - await this.storeMissingCrossReferencesCount(0); this.logger.success('All missing cross-references have been fixed!'); } else { if (this.verbose) { @@ -135,24 +112,6 @@ export default class DetectMissingCrossReferences extends BaseCommand { } } - private async storeMissingCrossReferencesCount(count: number): Promise { - try { - await AppConfig.updateOrCreate( - { - appid: 'commands', - configkey: 'missing_cross_references_count', - }, - { - configvalue: count.toString(), - }, - ); - - this.logger.info(`📊 Stored missing cross-references count in database: ${count}`); - } catch (error) { - this.logger.error('Failed to store missing cross-references count:', error); - } - } - private async findMissingCrossReferences(): Promise { const missingReferences: { sourceDatasetId: number; @@ -165,7 +124,6 @@ export default class DetectMissingCrossReferences extends BaseCommand { relation: string; doi: string | null; reverseRelation: string; - sourceReferenceLabel: string | null; }[] = []; this.logger.info('📊 Querying dataset references...'); @@ -200,9 +158,9 @@ export default class DetectMissingCrossReferences extends BaseCommand { for (const reference of tethysReferences) { processedCount++; - // if (this.verbose && processedCount % 10 === 0) { - // this.logger.info(`📈 Processed ${processedCount}/${tethysReferences.length} references...`); - // } + if (this.verbose && processedCount % 10 === 0) { + this.logger.info(`📈 Processed ${processedCount}/${tethysReferences.length} references...`); + } // Double-check that this relation is in our allowed list (safety check) if (!this.ALLOWED_RELATIONS.includes(reference.relation)) { @@ -214,41 +172,25 @@ export default class DetectMissingCrossReferences extends BaseCommand { } // Extract dataset publish_id from DOI or URL - // const targetDatasetPublish = this.extractDatasetPublishIdFromReference(reference.value); - // Extract DOI from reference URL - const doi = this.extractDoiFromReference(reference.value); + const targetDatasetPublish = this.extractDatasetPublishIdFromReference(reference.value); - // if (!targetDatasetPublish) { - // if (this.verbose) { - // this.logger.warning(`Could not extract publish ID from: ${reference.value}`); - // } - // continue; - // } - if (!doi) { + if (!targetDatasetPublish) { if (this.verbose) { - this.logger.warning(`Could not extract DOI from: ${reference.value}`); + this.logger.warning(`⚠️ Could not extract publish ID from: ${reference.value}`); } continue; } - // // Check if target dataset exists and is published - // const targetDataset = await Dataset.query() - // .where('publish_id', targetDatasetPublish) - // .where('server_state', 'published') - // .preload('identifier') - // .first(); - // Check if target dataset exists and is published by querying via identifier + // Check if target dataset exists and is published const targetDataset = await Dataset.query() + .where('publish_id', targetDatasetPublish) .where('server_state', 'published') - .whereHas('identifier', (query) => { - query.where('value', doi); - }) .preload('identifier') .first(); if (!targetDataset) { if (this.verbose) { - this.logger.warning(`⚠️ Target dataset with publish_id ${doi} not found or not published`); + this.logger.warning(`⚠️ Target dataset with publish_id ${targetDatasetPublish} not found or not published`); } continue; } @@ -262,9 +204,8 @@ export default class DetectMissingCrossReferences extends BaseCommand { // Check if reverse reference exists const reverseReferenceExists = await this.checkReverseReferenceExists( targetDataset.id, - reference.document_id, + // reference.document_id, reference.relation, - reference.dataset.identifier.value ); if (!reverseReferenceExists) { @@ -282,7 +223,6 @@ export default class DetectMissingCrossReferences extends BaseCommand { reverseRelation: reverseRelation, sourceDoi: reference.dataset.identifier ? reference.dataset.identifier.value : null, targetDoi: targetDataset.identifier ? targetDataset.identifier.value : null, - sourceReferenceLabel: reference.label || null, }); } } @@ -292,18 +232,6 @@ export default class DetectMissingCrossReferences extends BaseCommand { return missingReferences; } - private extractDoiFromReference(reference: string): string | null { - // Match DOI pattern, with or without URL prefix - const doiPattern = /(?:https?:\/\/)?(?:doi\.org\/)?(.+)/i; - const match = reference.match(doiPattern); - - if (match && match[1]) { - return match[1]; // Returns just "10.24341/tethys.99.2" - } - - return null; - } - private extractDatasetPublishIdFromReference(value: string): number | null { // Extract from DOI: https://doi.org/10.24341/tethys.107 -> 107 const doiMatch = value.match(/10\.24341\/tethys\.(\d+)/); @@ -320,12 +248,7 @@ export default class DetectMissingCrossReferences extends BaseCommand { return null; } - private async checkReverseReferenceExists( - targetDatasetId: number, - sourceDatasetId: number, - originalRelation: string, - sourceDatasetIdentifier: string | null, - ): Promise { + private async checkReverseReferenceExists(targetDatasetId: number, originalRelation: string): Promise { const reverseRelation = this.getReverseRelation(originalRelation); if (!reverseRelation) { @@ -335,10 +258,9 @@ export default class DetectMissingCrossReferences extends BaseCommand { // Only check for reverse references where the source dataset is also published const reverseReference = await DatasetReference.query() // We don't filter by source document_id here to find any incoming reference from any published dataset - .where('document_id', targetDatasetId) - // .where('related_document_id', sourceDatasetId) // Ensure it's an incoming reference + // .where('document_id', sourceDatasetId) + .where('related_document_id', targetDatasetId) .where('relation', reverseRelation) - .where('value', 'like', `%${sourceDatasetIdentifier}`) // Basic check to ensure it points back to source dataset .first(); return !!reverseReference; @@ -350,10 +272,6 @@ export default class DetectMissingCrossReferences extends BaseCommand { IsPreviousVersionOf: 'IsNewVersionOf', IsVariantFormOf: 'IsOriginalFormOf', IsOriginalFormOf: 'IsVariantFormOf', - Continues: 'IsContinuedBy', - IsContinuedBy: 'Continues', - HasPart: 'IsPartOf', - IsPartOf: 'HasPart', }; // Only return reverse relation if it exists in our map, otherwise return null @@ -398,7 +316,6 @@ export default class DetectMissingCrossReferences extends BaseCommand { .where('id', missing.sourceDatasetId) .where('server_state', 'published') .preload('identifier') - .preload('titles') // Preload titles to get mainTitle .first(); const targetDataset = await Dataset.query().where('id', missing.targetDatasetId).where('server_state', 'published').first(); @@ -415,27 +332,12 @@ export default class DetectMissingCrossReferences extends BaseCommand { continue; } - // **NEW: Update the original reference if related_document_id is missing** - const originalReference = await DatasetReference.query() - .where('document_id', missing.sourceDatasetId) - .where('relation', missing.relation) - .where('value', 'like', `%${missing.targetDoi}%`) - .first(); - if (originalReference && !originalReference.related_document_id) { - originalReference.related_document_id = missing.targetDatasetId; - await originalReference.save(); - if (this.verbose) { - this.logger.info(`🔗 Updated original reference with related_document_id: ${missing.targetDatasetId}`); - } - } - // Create the reverse reference using the referenced_by relationship // Example: If Dataset 297 IsNewVersionOf Dataset 144 // We create an incoming reference for Dataset 144 that shows Dataset 297 IsPreviousVersionOf it const reverseReference = new DatasetReference(); // Don't set document_id - this creates an incoming reference via related_document_id - reverseReference.document_id = missing.targetDatasetId; // - reverseReference.related_document_id = missing.sourceDatasetId; + reverseReference.related_document_id = missing.targetDatasetId; // 144 (dataset receiving the incoming reference) reverseReference.type = 'DOI'; reverseReference.relation = missing.reverseRelation; @@ -448,12 +350,8 @@ export default class DetectMissingCrossReferences extends BaseCommand { } // Use the source dataset's main title for the label - //reverseReference.label = sourceDataset.mainTitle || `Dataset ${missing.sourceDatasetId}`; - // get label of forward reference - reverseReference.label = missing.sourceReferenceLabel || sourceDataset.mainTitle || `Dataset ${missing.sourceDatasetId}`; - // reverseReference.notes = `Auto-created by detect:missing-cross-references command on ${DateTime.now().toISO()} to fix missing bidirectional reference.`; + reverseReference.label = sourceDataset.mainTitle || `Dataset ${missing.sourceDatasetId}`; - // Save the new reverse reference // Also save 'server_date_modified' on target dataset to trigger any downstream updates (e.g. search index) targetDataset.server_date_modified = DateTime.now(); await targetDataset.save(); diff --git a/commands/index_datasets.ts b/commands/index_datasets.ts index 322d4b8..44ebeb2 100644 --- a/commands/index_datasets.ts +++ b/commands/index_datasets.ts @@ -4,7 +4,7 @@ import { XMLBuilder } from 'xmlbuilder2/lib/interfaces.js'; import { create } from 'xmlbuilder2'; import Dataset from '#models/dataset'; -import XmlModel from '#app/Library/DatasetXmlSerializer'; +import XmlModel from '#app/Library/XmlModel'; import { readFileSync } from 'fs'; import SaxonJS from 'saxon-js'; import { Client } from '@opensearch-project/opensearch'; @@ -151,16 +151,19 @@ export default class IndexDatasets extends BaseCommand { } private async getDatasetXmlDomNode(dataset: Dataset): Promise { - const serializer = new XmlModel(dataset).enableCaching().excludeEmptyFields(); + const xmlModel = new XmlModel(dataset); // xmlModel.setModel(dataset); - + xmlModel.excludeEmptyFields(); + xmlModel.caching = true; + // const cache = dataset.xmlCache ? dataset.xmlCache : null; + // dataset.load('xmlCache'); if (dataset.xmlCache) { - serializer.setCache(dataset.xmlCache); + xmlModel.xmlCache = dataset.xmlCache; } - // return cache.toXmlDocument(); - const xmlDocument: XMLBuilder | null = await serializer.toXmlDocument(); - return xmlDocument; + // return cache.getDomDocument(); + const domDocument: XMLBuilder | null = await xmlModel.getDomDocument(); + return domDocument; } private addSpecInformation(domNode: XMLBuilder, information: string) { diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 10d0f37..f932a8d 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,45 +1,38 @@ #!/bin/bash -set -m +set -e echo "Starting ClamAV services..." # Try to download database if missing -# if [ ! "$(ls -A /var/lib/clamav 2>/dev/null)" ]; then -# echo "Downloading ClamAV database (this may take a while)..." +if [ ! "$(ls -A /var/lib/clamav 2>/dev/null)" ]; then + echo "Downloading ClamAV database (this may take a while)..." -# # Simple freshclam run without complex config -# if freshclam --datadir=/var/lib/clamav --quiet; then -# echo "✓ Database downloaded successfully" -# else -# echo "⚠ Database download failed - creating minimal setup" -# # Create a dummy file so clamd doesn't immediately fail -# touch /var/lib/clamav/.dummy -# fi -# fi + # Simple freshclam run without complex config + if sg clamav -c "freshclam --datadir=/var/lib/clamav --quiet"; then + echo "✓ Database downloaded successfully" + else + echo "⚠ Database download failed - creating minimal setup" + # Create a dummy file so clamd doesn't immediately fail + sg clamav -c "touch /var/lib/clamav/.dummy" + fi +fi # Start freshclam daemon for automatic updates echo "Starting freshclam daemon for automatic updates..." -# sg clamav -c "freshclam -d" & -# Added --daemon-notify to freshclam - This notifies clamd when the database updates -freshclam -d --daemon-notify=/etc/clamav/clamd.conf & -#freshclam -d & +sg clamav -c "freshclam -d" & # /etc/init.d/clamav-freshclam start & # Start clamd in background # Start clamd in foreground (so dumb-init can supervise it) # /etc/init.d/clamav-daemon start & -# Give freshclam a moment to start -sleep 2 - # Start clamd daemon in background using sg echo "Starting ClamAV daemon..." # sg clamav -c "clamd" & # Use sg to run clamd with proper group permissions # sg clamav -c "clamd" & -# clamd --config-file=/etc/clamav/clamd.conf & -clamd & +sg clamav -c "clamd --config-file=/etc/clamav/clamd.conf" & # Give services time to start @@ -60,15 +53,9 @@ else echo "⚠ Freshclam daemon status uncertain, but continuing..." fi -# # Optional: Test socket connectivity -# if [ -S /var/run/clamav/clamd.socket ]; then -# echo "✓ ClamAV socket exists" -# else -# echo "⚠ WARNING: ClamAV socket not found - services may still be starting" -# fi - # # change back to CMD of dockerfile +# exec "$@" + echo "✓ ClamAV setup complete" echo "Starting main application..." -# exec dumb-init -- "$@" -exec "$@" \ No newline at end of file +exec dumb-init -- "$@" \ No newline at end of file diff --git a/freshclam.conf b/freshclam.conf index 31992be..444a63f 100644 --- a/freshclam.conf +++ b/freshclam.conf @@ -10,14 +10,14 @@ DatabaseDirectory /var/lib/clamav # Basic logging settings LogTime yes -LogVerbose yes +LogVerbose no LogSyslog no # PID file location PidFile /var/run/clamav/freshclam.pid # Database owner -DatabaseOwner node +DatabaseOwner clamav # Mirror settings for Austria DatabaseMirror db.at.clamav.net diff --git a/package-lock.json b/package-lock.json index 7cb57a4..f9efdac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@adonisjs/auth": "^9.2.4", "@adonisjs/bodyparser": "^10.0.1", - "@adonisjs/core": "6.17.2", + "@adonisjs/core": "^6.17.0", "@adonisjs/cors": "^2.2.1", "@adonisjs/drive": "^3.2.0", "@adonisjs/inertia": "^2.1.3", @@ -30,6 +30,7 @@ "@phc/format": "^1.0.0", "@poppinss/manager": "^5.0.2", "@vinejs/vine": "^3.0.0", + "argon2": "^0.43.0", "axios": "^1.7.9", "bcrypt": "^5.1.1", "bcryptjs": "^2.4.3", @@ -47,7 +48,9 @@ "node-2fa": "^2.0.3", "node-exceptions": "^4.0.1", "notiwind": "^2.0.0", + "p-limit": "^7.1.1", "pg": "^8.9.0", + "pino-pretty": "^13.0.0", "qrcode": "^1.5.3", "redis": "^5.0.0", "reflect-metadata": "^0.2.1", @@ -91,7 +94,6 @@ "hot-hook": "^0.4.0", "numeral": "^2.0.6", "pinia": "^3.0.2", - "pino-pretty": "^13.0.0", "postcss-loader": "^8.1.1", "prettier": "^3.4.2", "supertest": "^6.3.3", @@ -257,31 +259,31 @@ } }, "node_modules/@adonisjs/core": { - "version": "6.17.2", - "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-6.17.2.tgz", - "integrity": "sha512-POT5COID8Z3j37+Dd7Y1EfG01Q6+HPY/tGcSb0Y97W2VIPkFjqcW2ooTE4wFT09u7coNohtXJa19a0feMz9ncw==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@adonisjs/core/-/core-6.19.0.tgz", + "integrity": "sha512-qwGuapvMLYPna89Qji/MuD9xx6qqcqc/aLrSGgoFbOzBmd8Ycc9391w7sFrrGuJpHiNLBmf1NJsY3YS2AwyX0A==", "license": "MIT", "dependencies": { "@adonisjs/ace": "^13.3.0", - "@adonisjs/application": "^8.3.1", - "@adonisjs/bodyparser": "^10.0.3", - "@adonisjs/config": "^5.0.2", + "@adonisjs/application": "^8.4.1", + "@adonisjs/bodyparser": "^10.1.0", + "@adonisjs/config": "^5.0.3", "@adonisjs/encryption": "^6.0.2", - "@adonisjs/env": "^6.1.1", + "@adonisjs/env": "^6.2.0", "@adonisjs/events": "^9.0.2", - "@adonisjs/fold": "^10.1.3", - "@adonisjs/hash": "^9.0.5", + "@adonisjs/fold": "^10.2.0", + "@adonisjs/hash": "^9.1.1", "@adonisjs/health": "^2.0.0", - "@adonisjs/http-server": "^7.4.0", - "@adonisjs/logger": "^6.0.5", + "@adonisjs/http-server": "^7.7.0", + "@adonisjs/logger": "^6.0.6", "@adonisjs/repl": "^4.1.0", - "@antfu/install-pkg": "^1.0.0", + "@antfu/install-pkg": "^1.1.0", "@paralleldrive/cuid2": "^2.2.2", "@poppinss/colors": "^4.1.4", - "@poppinss/dumper": "^0.6.2", + "@poppinss/dumper": "^0.6.3", "@poppinss/macroable": "^1.0.4", - "@poppinss/utils": "^6.9.2", - "@sindresorhus/is": "^7.0.1", + "@poppinss/utils": "^6.10.0", + "@sindresorhus/is": "^7.0.2", "@types/he": "^1.2.3", "error-stack-parser-es": "^1.0.5", "he": "^1.2.0", @@ -300,8 +302,8 @@ "peerDependencies": { "@adonisjs/assembler": "^7.8.0", "@vinejs/vine": "^2.1.0 || ^3.0.0", - "argon2": "^0.31.2 || ^0.41.0", - "bcrypt": "^5.1.1", + "argon2": "^0.31.2 || ^0.41.0 || ^0.43.0", + "bcrypt": "^5.1.1 || ^6.0.0", "edge.js": "^6.2.0" }, "peerDependenciesMeta": { @@ -6096,17 +6098,15 @@ "license": "MIT" }, "node_modules/argon2": { - "version": "0.41.1", - "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.41.1.tgz", - "integrity": "sha512-dqCW8kJXke8Ik+McUcMDltrbuAWETPyU6iq+4AhxqKphWi7pChB/Zgd/Tp/o8xRLbg8ksMj46F/vph9wnxpTzQ==", + "version": "0.43.1", + "resolved": "https://registry.npmjs.org/argon2/-/argon2-0.43.1.tgz", + "integrity": "sha512-TfOzvDWUaQPurCT1hOwIeFNkgrAJDpbBGBGWDgzDsm11nNhImc13WhdGdCU6K7brkp8VpeY07oGtSex0Wmhg8w==", "hasInstallScript": true, "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@phc/format": "^1.0.0", - "node-addon-api": "^8.1.0", - "node-gyp-build": "^4.8.1" + "node-addon-api": "^8.4.0", + "node-gyp-build": "^4.8.4" }, "engines": { "node": ">=16.17.0" @@ -7399,7 +7399,6 @@ "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "dev": true, "license": "MIT", "engines": { "node": "*" @@ -7905,7 +7904,6 @@ "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "dev": true, "license": "MIT", "dependencies": { "once": "^1.4.0" @@ -8561,7 +8559,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", - "dev": true, "license": "MIT" }, "node_modules/fast-deep-equal": { @@ -8634,7 +8631,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true, "license": "MIT" }, "node_modules/fast-uri": { @@ -9668,7 +9664,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", - "dev": true, "license": "MIT" }, "node_modules/hookable": { @@ -10433,7 +10428,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -11160,7 +11154,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11331,8 +11324,6 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", "license": "MIT", - "optional": true, - "peer": true, "engines": { "node": "^18 || ^20 || >= 21" } @@ -11378,8 +11369,6 @@ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "license": "MIT", - "optional": true, - "peer": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -11722,15 +11711,15 @@ } }, "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.1.1.tgz", + "integrity": "sha512-i8PyM2JnsNChVSYWLr2BAjNoLi0BAYC+wecOnZnVV+YSNJkzP7cWmvI34dk0WArWfH9KwBHNoZI3P3MppImlIA==", "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "yocto-queue": "^1.2.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -11751,6 +11740,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-map": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", @@ -12170,7 +12174,6 @@ "version": "13.1.1", "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-13.1.1.tgz", "integrity": "sha512-TNNEOg0eA0u+/WuqH0MH0Xui7uqVk9D74ESOpjtebSQYbNWJk/dIxCXIxFsNfeN53JmtWqYHP2OrIZjT/CBEnA==", - "dev": true, "license": "MIT", "dependencies": { "colorette": "^2.0.7", @@ -12195,7 +12198,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.0.0.tgz", "integrity": "sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==", - "dev": true, "funding": [ { "type": "github", @@ -12212,7 +12214,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz", "integrity": "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==", - "dev": true, "license": "MIT", "engines": { "node": ">=14.16" @@ -12664,7 +12665,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "dev": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", diff --git a/package.json b/package.json index 7ae829f..49385ba 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,6 @@ "hot-hook": "^0.4.0", "numeral": "^2.0.6", "pinia": "^3.0.2", - "pino-pretty": "^13.0.0", "postcss-loader": "^8.1.1", "prettier": "^3.4.2", "supertest": "^6.3.3", @@ -77,7 +76,7 @@ "dependencies": { "@adonisjs/auth": "^9.2.4", "@adonisjs/bodyparser": "^10.0.1", - "@adonisjs/core": "6.17.2", + "@adonisjs/core": "^6.17.0", "@adonisjs/cors": "^2.2.1", "@adonisjs/drive": "^3.2.0", "@adonisjs/inertia": "^2.1.3", @@ -97,6 +96,7 @@ "@phc/format": "^1.0.0", "@poppinss/manager": "^5.0.2", "@vinejs/vine": "^3.0.0", + "argon2": "^0.43.0", "axios": "^1.7.9", "bcrypt": "^5.1.1", "bcryptjs": "^2.4.3", @@ -114,7 +114,9 @@ "node-2fa": "^2.0.3", "node-exceptions": "^4.0.1", "notiwind": "^2.0.0", + "p-limit": "^7.1.1", "pg": "^8.9.0", + "pino-pretty": "^13.0.0", "qrcode": "^1.5.3", "redis": "^5.0.0", "reflect-metadata": "^0.2.1", diff --git a/providers/rule_provider.ts b/providers/rule_provider.ts deleted file mode 100644 index c945a5d..0000000 --- a/providers/rule_provider.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { ApplicationService } from '@adonisjs/core/types'; - -export default class RuleProvider { - constructor(protected app: ApplicationService) {} - - public register() { - // Register your own bindings - } - - public async boot() { - // IoC container is ready - // await import("../src/rules/index.js"); - - await import('#start/rules/unique'); - await import('#start/rules/translated_language'); - await import('#start/rules/unique_person'); - // () => import('#start/rules/file_length'), - // () => import('#start/rules/file_scan'), - // () => import('#start/rules/allowed_extensions_mimetypes'), - await import('#start/rules/dependent_array_min_length'); - await import('#start/rules/referenceValidation'); - await import('#start/rules/valid_mimetype'); - await import('#start/rules/array_contains_types'); - await import('#start/rules/orcid'); - } - - public async ready() { - // App is ready - } - - public async shutdown() { - // Cleanup, since app is going down - } -} diff --git a/public/assets2/solr.sef.json b/public/assets2/solr.sef.json index 096d58e..293f5fc 100644 --- a/public/assets2/solr.sef.json +++ b/public/assets2/solr.sef.json @@ -1 +1 @@ -{"N":"package","version":"30","packageVersion":"1","saxonVersion":"SaxonJS 2.7","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"false","buildDateTime":"2025-10-09T14:12:43.043+02:00","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json","C":[{"N":"co","binds":"","id":"0","vis":"PRIVATE","ex:uniform":"true","C":[{"N":"function","name":"Q{http://example.com/functions}escapeQuotes","as":"* ","slots":"201","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json","module":"solr.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","flags":"muu","sig":"1F r[* ] a[* ] ","sType":"1F r[* ] a[* ] ","line":"40","C":[{"N":"arg","slot":"0","name":"Q{}input","as":"* ","sType":"* "},{"N":"fn","name":"replace","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"body","line":"43","C":[{"N":"treat","as":"AS","diag":"0|0||replace","C":[{"N":"check","card":"?","diag":"0|0||replace","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||replace","C":[{"N":"check","card":"?","diag":"0|0||replace","C":[{"N":"data","diag":"0|0||replace","C":[{"N":"varRef","name":"Q{}input","slot":"0"}]}]}]}]}]},{"N":"str","val":"\""},{"N":"str","val":"'"}]}]}]},{"N":"co","id":"1","binds":"0","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"1","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","line":"380","module":"solr.xslt","expand-text":"false","match":"/root2","prio":"0.5","matches":"NE u[NE nQ{}root2,NE nQ{http://www.w3.org/1999/xhtml}root2]","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NE u[NE nQ{}root2,NE nQ{http://www.w3.org/1999/xhtml}root2]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"p.nodeTest","test":"NE u[NE nQ{}root2,NE nQ{http://www.w3.org/1999/xhtml}root2]"},{"N":"p.nodeTest","test":"ND"}]},{"N":"elem","type":"element()","role":"action","name":"add","sType":"1NE ","nsuri":"","line":"381","C":[{"N":"elem","type":"element()","name":"doc","sType":"1NE ","nsuri":"","line":"382","C":[{"N":"sequence","sType":"* ","C":[{"N":"forEach","sType":"*NE ","line":"391","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"391","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Fulltext_Index,NE nQ{http://www.w3.org/1999/xhtml}Fulltext_Index]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"392","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"393","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fulltext"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"394","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"394"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"399","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"400","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"has_fulltext"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"401","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"401","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Has_Fulltext,NE nQ{http://www.w3.org/1999/xhtml}Has_Fulltext]"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"405","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"405","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Fulltext_ID_Success,NE nQ{http://www.w3.org/1999/xhtml}Fulltext_ID_Success]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"406","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"407","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fulltext_id_success"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"408","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"408"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"413","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"413","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Fulltext_ID_Failure,NE nQ{http://www.w3.org/1999/xhtml}Fulltext_ID_Failure]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"414","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"415","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fulltext_id_failure"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"416","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"416"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"421","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"421","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonReferee,NE nQ{http://www.w3.org/1999/xhtml}PersonReferee]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"422","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"423","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"referee"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"424","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"424"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"426","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"426"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"forEach","sType":"* ","line":"431","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"431","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE"}]}]}]},{"N":"choose","sType":"? ","line":"432","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"432","C":[{"N":"and","C":[{"N":"and","C":[{"N":"compareToString","op":"ne","val":"Person","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"ne","val":"PersonAuthor","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"compareToString","op":"ne","val":"PersonSubmitter","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"compareToString","op":"eq","val":"Person","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"substring","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"6"}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"433","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"434","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"persons"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"435","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"435"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"437","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"437"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"forEach","sType":"* ","line":"451","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"451","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]"}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"* ","type":"item()*","line":"452","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"453","C":[{"N":"attVal","name":"Q{}RoleName"},{"N":"str","val":"projects"}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"454","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"455","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"project"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"456","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Number","name":"attribute","nodeTest":"*NA nQ{}Number","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"456"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"458","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"459","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"app_area"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"460","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"460","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"attVal","name":"Q{}Number"}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"0"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"2"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"463","C":[{"N":"attVal","name":"Q{}RoleName"},{"N":"str","val":"institutes"}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"464","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"465","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"institute"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"466","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Name","name":"attribute","nodeTest":"*NA nQ{}Name","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"466"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"471","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"472","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collection_ids"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"473","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Id","name":"attribute","nodeTest":"*NA nQ{}Id","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"473"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"484","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"484","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Series,NE nQ{http://www.w3.org/1999/xhtml}Series]"}]}]}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"485","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"486","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"series_ids"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"487","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Id","name":"attribute","nodeTest":"*NA nQ{}Id","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"487"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"490","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"491","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"series_number_for_id_"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"493","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Id","name":"attribute","nodeTest":"*NA nQ{}Id","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"493"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"495","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Number","name":"attribute","nodeTest":"*NA nQ{}Number","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"495"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"498","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"499","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"doc_sort_order_for_seriesid_"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"501","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Id","name":"attribute","nodeTest":"*NA nQ{}Id","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"501"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"503","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DocSortOrder","name":"attribute","nodeTest":"*NA nQ{}DocSortOrder","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"503"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"choose","sType":"? ","line":"516","C":[{"N":"docOrder","sType":"*NE","line":"516","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"517","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"name","sType":"1NA ","line":"518","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"geo_location"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}geolocation","slot":"0","sType":"* ","line":"524","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"524","C":[{"N":"str","val":"SOUTH-BOUND LATITUDE: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]}]},{"N":"str","val":" * WEST-BOUND LONGITUDE: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"data","diag":"0|3||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]},{"N":"str","val":" * NORTH-BOUND LATITUDE: "},{"N":"check","card":"?","diag":"0|5||concat","C":[{"N":"data","diag":"0|5||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]}]},{"N":"str","val":" * EAST-BOUND LONGITUDE: "},{"N":"check","card":"?","diag":"0|7||concat","C":[{"N":"data","diag":"0|7||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]}]}]},{"N":"sequence","sType":"? ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"526","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}geolocation","slot":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"526"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n"}]},{"N":"choose","sType":"? ","line":"528","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"528","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ElevationMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ElevationMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"529","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"529","C":[{"N":"str","val":" * ELEVATION MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}ElevationMin"}]},{"N":"str","val":" * ELEVATION MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}ElevationMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"531","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"531","C":[{"N":"attVal","name":"Q{}ElevationAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"532","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"532","C":[{"N":"str","val":" * ELEVATION ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}ElevationAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n"}]},{"N":"choose","sType":"? ","line":"536","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"536","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}DepthMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}DepthMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"537","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"537","C":[{"N":"str","val":" * DEPTH MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}DepthMin"}]},{"N":"str","val":" * DEPTH MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}DepthMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"539","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"539","C":[{"N":"attVal","name":"Q{}DepthAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"540","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"540","C":[{"N":"str","val":" * DEPTH ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}DepthAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n"}]},{"N":"choose","sType":"? ","line":"544","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"544","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}TimeMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}TimeMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"545","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"545","C":[{"N":"str","val":" * TIME MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}TimeMin"}]},{"N":"str","val":" * TIME MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}TimeMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"547","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"547","C":[{"N":"attVal","name":"Q{}TimeAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"548","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"548","C":[{"N":"str","val":" * TIME ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}TimeAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"0","seq":"0","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","line":"46","module":"solr.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json "},{"N":"sequence","role":"action","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"{"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"id\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"78","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublishId","name":"attribute","nodeTest":"*NA nQ{}PublishId","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"78"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"let","var":"Q{}year","slot":"0","sType":"* ","line":"82","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"83","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"84","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"85","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Year","role":"select","line":"85","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Year","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"88","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublishedYear","name":"attribute","nodeTest":"*NA nQ{}PublishedYear","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"88"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"year\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"93","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}year","slot":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"93"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"choose","sType":"* ","line":"97","C":[{"N":"varRef","name":"Q{}year","slot":"0","sType":"*","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"97"},{"N":"let","var":"Q{}yearInverted","slot":"1","sType":"*NT ","line":"98","C":[{"N":"arith","op":"-","calc":"a-a","sType":"1A","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"98","C":[{"N":"int","val":"65535"},{"N":"check","card":"?","diag":"1|1||arith","C":[{"N":"data","diag":"1|1||arith","C":[{"N":"varRef","name":"Q{}year","slot":"0"}]}]}]},{"N":"sequence","sType":"?NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"year_inverted\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"100","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}yearInverted","slot":"1","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"100"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"105","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"105","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"server_date_published\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"107","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}UnixTimestamp","role":"select","line":"107","C":[{"N":"slash","op":"/","sType":"*NA nQ{}UnixTimestamp","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"112","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"112","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"server_date_modified\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"114","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}UnixTimestamp","role":"select","line":"114","C":[{"N":"slash","op":"/","sType":"*NA nQ{}UnixTimestamp","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"119","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"119","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"embargo_date\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"121","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}UnixTimestamp","role":"select","line":"121","C":[{"N":"slash","op":"/","sType":"*NA nQ{}UnixTimestamp","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}language","slot":"1","sType":"* ","line":"126","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Language","sType":"*NA nQ{}Language","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"126"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"language\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"128","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}language","slot":"1","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"128"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"forEach","sType":"* ","line":"132","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"132"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"title\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"134","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"134","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"choose","sType":"* ","line":"136","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"136","C":[{"N":"attVal","name":"Q{}Language"},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}language","slot":"1"}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"title_output\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"138","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"138"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"let","var":"Q{}abstracts","slot":"2","sType":"* ","line":"144","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"145","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"145"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"148","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"148","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"150","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"150","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"abstract\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"154","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}abstracts","slot":"2","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"154"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"let","var":"Q{}authors","slot":"3","sType":"* ","line":"166","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"167","C":[{"N":"sort","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"167"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"168"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"171","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"171"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"173","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"173"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"175","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"175","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"author\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"179","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}authors","slot":"3","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"179"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"doctype\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"205","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"205"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"let","var":"Q{}subjects","slot":"4","sType":"* ","line":"209","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"211","C":[{"N":"filter","sType":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"211","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]"},{"N":"or","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Uncontrolled"}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Geoera"}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"213","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"213","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"215","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"215","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"subjects\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"219","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}subjects","slot":"4","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"219"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"belongs_to_bibliography\": "}]},{"N":"choose","sType":"?NT ","type":"item()*","line":"224","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"225","C":[{"N":"attVal","name":"Q{}BelongsToBibliography"},{"N":"int","val":"1"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"true"}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"false"}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"choose","sType":"* ","line":"237","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleSub,NE nQ{http://www.w3.org/1999/xhtml}TitleSub]","sType":"*NE u[NE nQ{}TitleSub,NE nQ{http://www.w3.org/1999/xhtml}TitleSub]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"237"},{"N":"let","var":"Q{}title_sub","slot":"5","sType":"*NT ","line":"238","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"239","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleSub,NE nQ{http://www.w3.org/1999/xhtml}TitleSub]","sType":"*NE u[NE nQ{}TitleSub,NE nQ{http://www.w3.org/1999/xhtml}TitleSub]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"239"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"241","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"241","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"243","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"243","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"?NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"title_sub\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"249","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}title_sub","slot":"5","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"249"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}title_additional","slot":"5","sType":"* ","line":"254","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"255","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"255"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"258","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"258","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"260","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"260","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"title_additional\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"266","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"266","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}title_additional","slot":"5"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"let","var":"Q{}abstract_additional","slot":"6","sType":"* ","line":"270","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"271","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"271"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"273","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"273","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"275","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"275","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"abstract_additional\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"281","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}abstract_additional","slot":"6","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"281"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"choose","sType":"* ","line":"285","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"285"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"licence\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"287","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"287","bSlot":"0","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Name"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"292","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","sType":"*NA nQ{}CreatingCorporation","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"292"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"creating_corporation\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"294","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"294"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"299","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}ContributingCorporation","sType":"*NA nQ{}ContributingCorporation","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"299"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"contributing_corporation\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"301","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}ContributingCorporation","name":"attribute","nodeTest":"*NA nQ{}ContributingCorporation","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"301"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"306","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}PublisherName","sType":"*NA nQ{}PublisherName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"306"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"publisher_name\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"308","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublisherName","name":"attribute","nodeTest":"*NA nQ{}PublisherName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"308"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"313","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}PublisherPlace","sType":"*NA nQ{}PublisherPlace","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"313"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"publisher_place\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"315","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublisherPlace","name":"attribute","nodeTest":"*NA nQ{}PublisherPlace","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"315"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"320","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"320"},{"N":"let","var":"Q{}geolocation","slot":"7","sType":"*NT ","line":"324","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"324","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]},{"N":"str","val":", "},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"data","diag":"0|2||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]},{"N":"str","val":", "},{"N":"check","card":"?","diag":"0|4||concat","C":[{"N":"data","diag":"0|4||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]},{"N":"str","val":", "},{"N":"check","card":"?","diag":"0|6||concat","C":[{"N":"data","diag":"0|6||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]},{"N":"sequence","sType":"?NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"geo_location\": "}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"BBOX ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"327","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}geolocation","slot":"7","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"327"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")\","}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"bbox_xmin\": "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"331","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}XMin","role":"select","line":"331","C":[{"N":"slash","op":"/","sType":"*NA nQ{}XMin","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"bbox_xmax\": "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"334","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}XMax","role":"select","line":"334","C":[{"N":"slash","op":"/","sType":"*NA nQ{}XMax","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"bbox_ymin\": "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"337","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}YMin","role":"select","line":"337","C":[{"N":"slash","op":"/","sType":"*NA nQ{}YMin","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"bbox_ymax\": "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"340","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}YMax","role":"select","line":"340","C":[{"N":"slash","op":"/","sType":"*NA nQ{}YMax","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}identifier","slot":"7","sType":"*NT ","line":"346","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"347","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"347"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"349","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"349","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"351","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"351","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"identifier\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"357","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}identifier","slot":"7","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"357"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"let","var":"Q{}reference","slot":"8","sType":"*NT ","line":"361","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"362","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"362"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"364","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"364","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"366","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"366","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"?NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"reference\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"372","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}reference","slot":"8","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"372"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"]"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"}"}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"overridden"},{"N":"output","C":[{"N":"property","name":"Q{http://saxon.sf.net/}stylesheet-version","value":"30"},{"N":"property","name":"method","value":"text"}]},{"N":"decimalFormat"}],"Σ":"5fc7092b"} \ No newline at end of file +{"N":"package","version":"30","packageVersion":"1","saxonVersion":"SaxonJS 2.7","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"false","buildDateTime":"2025-09-05T13:27:50.249+02:00","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json","C":[{"N":"co","binds":"","id":"0","vis":"PRIVATE","ex:uniform":"true","C":[{"N":"function","name":"Q{http://example.com/functions}escapeQuotes","as":"* ","slots":"201","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json","module":"solr.xslt","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","flags":"muu","sig":"1F r[* ] a[* ] ","sType":"1F r[* ] a[* ] ","line":"40","C":[{"N":"arg","slot":"0","name":"Q{}input","as":"* ","sType":"* "},{"N":"fn","name":"replace","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"body","line":"43","C":[{"N":"treat","as":"AS","diag":"0|0||replace","C":[{"N":"check","card":"?","diag":"0|0||replace","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||replace","C":[{"N":"check","card":"?","diag":"0|0||replace","C":[{"N":"data","diag":"0|0||replace","C":[{"N":"varRef","name":"Q{}input","slot":"0"}]}]}]}]}]},{"N":"str","val":"\""},{"N":"str","val":"'"}]}]}]},{"N":"co","id":"1","binds":"0","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"1","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","line":"379","module":"solr.xslt","expand-text":"false","match":"/root2","prio":"0.5","matches":"NE u[NE nQ{}root2,NE nQ{http://www.w3.org/1999/xhtml}root2]","C":[{"N":"p.withUpper","role":"match","axis":"parent","sType":"1NE u[NE nQ{}root2,NE nQ{http://www.w3.org/1999/xhtml}root2]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"p.nodeTest","test":"NE u[NE nQ{}root2,NE nQ{http://www.w3.org/1999/xhtml}root2]"},{"N":"p.nodeTest","test":"ND"}]},{"N":"elem","type":"element()","role":"action","name":"add","sType":"1NE ","nsuri":"","line":"380","C":[{"N":"elem","type":"element()","name":"doc","sType":"1NE ","nsuri":"","line":"381","C":[{"N":"sequence","sType":"* ","C":[{"N":"forEach","sType":"*NE ","line":"390","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"390","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Fulltext_Index,NE nQ{http://www.w3.org/1999/xhtml}Fulltext_Index]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"391","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"392","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fulltext"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"393","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"393"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"398","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"399","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"has_fulltext"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"400","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"400","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Has_Fulltext,NE nQ{http://www.w3.org/1999/xhtml}Has_Fulltext]"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"404","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"404","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Fulltext_ID_Success,NE nQ{http://www.w3.org/1999/xhtml}Fulltext_ID_Success]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"405","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"406","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fulltext_id_success"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"407","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"407"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"412","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"412","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Fulltext_ID_Failure,NE nQ{http://www.w3.org/1999/xhtml}Fulltext_ID_Failure]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"413","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"414","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fulltext_id_failure"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"415","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"dot","sType":"1NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"415"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"420","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"420","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonReferee,NE nQ{http://www.w3.org/1999/xhtml}PersonReferee]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"421","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"422","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"referee"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"423","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"423"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"425","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"425"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"forEach","sType":"* ","line":"430","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"430","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE"}]}]}]},{"N":"choose","sType":"? ","line":"431","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"431","C":[{"N":"and","C":[{"N":"and","C":[{"N":"compareToString","op":"ne","val":"Person","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"ne","val":"PersonAuthor","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"compareToString","op":"ne","val":"PersonSubmitter","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"compareToString","op":"eq","val":"Person","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"substring","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"1"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"6"}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"432","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"433","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"persons"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"434","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"434"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"436","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"436"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"forEach","sType":"* ","line":"450","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"450","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Collection,NE nQ{http://www.w3.org/1999/xhtml}Collection]"}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"choose","sType":"* ","type":"item()*","line":"451","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"452","C":[{"N":"attVal","name":"Q{}RoleName"},{"N":"str","val":"projects"}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"453","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"454","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"project"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"455","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Number","name":"attribute","nodeTest":"*NA nQ{}Number","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"455"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"457","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"458","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"app_area"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"459","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"substring","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"459","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||substring","C":[{"N":"check","card":"?","diag":"0|0||substring","C":[{"N":"attVal","name":"Q{}Number"}]}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"0"}]},{"N":"convert","to":"AO","flags":"","C":[{"N":"int","val":"2"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"462","C":[{"N":"attVal","name":"Q{}RoleName"},{"N":"str","val":"institutes"}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"463","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"464","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"institute"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"465","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Name","name":"attribute","nodeTest":"*NA nQ{}Name","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"465"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"470","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"471","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"collection_ids"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"472","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Id","name":"attribute","nodeTest":"*NA nQ{}Id","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"472"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"483","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"483","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Series,NE nQ{http://www.w3.org/1999/xhtml}Series]"}]}]}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"484","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"485","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"series_ids"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"486","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Id","name":"attribute","nodeTest":"*NA nQ{}Id","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"486"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"489","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"490","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"series_number_for_id_"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"492","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Id","name":"attribute","nodeTest":"*NA nQ{}Id","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"492"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"494","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Number","name":"attribute","nodeTest":"*NA nQ{}Number","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"494"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"497","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"name","sType":"1NA ","line":"498","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"doc_sort_order_for_seriesid_"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"500","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Id","name":"attribute","nodeTest":"*NA nQ{}Id","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"500"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"502","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DocSortOrder","name":"attribute","nodeTest":"*NA nQ{}DocSortOrder","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"502"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"choose","sType":"? ","line":"515","C":[{"N":"docOrder","sType":"*NE","line":"515","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]}]}]},{"N":"elem","type":"element()","name":"field","sType":"1NE ","nsuri":"","line":"516","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"name","sType":"1NA ","line":"517","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"geo_location"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}geolocation","slot":"0","sType":"* ","line":"523","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"523","C":[{"N":"str","val":"SOUTH-BOUND LATITUDE: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]}]},{"N":"str","val":" * WEST-BOUND LONGITUDE: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"data","diag":"0|3||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]},{"N":"str","val":" * NORTH-BOUND LATITUDE: "},{"N":"check","card":"?","diag":"0|5||concat","C":[{"N":"data","diag":"0|5||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]}]},{"N":"str","val":" * EAST-BOUND LONGITUDE: "},{"N":"check","card":"?","diag":"0|7||concat","C":[{"N":"data","diag":"0|7||concat","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Opus,NE nQ{http://www.w3.org/1999/xhtml}Opus]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]"}]},{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]}]}]},{"N":"sequence","sType":"? ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"525","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}geolocation","slot":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"525"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n"}]},{"N":"choose","sType":"? ","line":"527","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"527","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ElevationMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}ElevationMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"528","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"528","C":[{"N":"str","val":" * ELEVATION MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}ElevationMin"}]},{"N":"str","val":" * ELEVATION MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}ElevationMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"530","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"530","C":[{"N":"attVal","name":"Q{}ElevationAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"531","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"531","C":[{"N":"str","val":" * ELEVATION ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}ElevationAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n"}]},{"N":"choose","sType":"? ","line":"535","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"535","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}DepthMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}DepthMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"536","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"536","C":[{"N":"str","val":" * DEPTH MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}DepthMin"}]},{"N":"str","val":" * DEPTH MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}DepthMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"538","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"538","C":[{"N":"attVal","name":"Q{}DepthAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"539","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"539","C":[{"N":"str","val":" * DEPTH ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}DepthAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\n"}]},{"N":"choose","sType":"? ","line":"543","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"543","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}TimeMin"},{"N":"str","val":""}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}TimeMax"},{"N":"str","val":""}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"544","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"544","C":[{"N":"str","val":" * TIME MIN: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}TimeMin"}]},{"N":"str","val":" * TIME MAX: "},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"attVal","name":"Q{}TimeMax"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"546","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"546","C":[{"N":"attVal","name":"Q{}TimeAbsolut"},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"547","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"547","C":[{"N":"str","val":" * TIME ABSOLUT: "},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"attVal","name":"Q{}TimeAbsolut"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"0","seq":"0","ns":"xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json","minImp":"0","flags":"s","slots":"200","baseUri":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","line":"46","module":"solr.xslt","expand-text":"false","match":"Rdr_Dataset","prio":"0","matches":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","C":[{"N":"p.nodeTest","role":"match","test":"NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","sType":"1NE u[NE nQ{}Rdr_Dataset,NE nQ{http://www.w3.org/1999/xhtml}Rdr_Dataset]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json "},{"N":"sequence","role":"action","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"{"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"id\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"78","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublishId","name":"attribute","nodeTest":"*NA nQ{}PublishId","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"78"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"let","var":"Q{}year","slot":"0","sType":"* ","line":"82","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"83","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"84","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]},{"N":"str","val":""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"85","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}Year","role":"select","line":"85","C":[{"N":"slash","op":"/","sType":"*NA nQ{}Year","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Year"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","flags":"l","sType":"1NT ","line":"88","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublishedYear","name":"attribute","nodeTest":"*NA nQ{}PublishedYear","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"88"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"year\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"93","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}year","slot":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"93"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"choose","sType":"* ","line":"97","C":[{"N":"varRef","name":"Q{}year","slot":"0","sType":"*","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"97"},{"N":"let","var":"Q{}yearInverted","slot":"1","sType":"*NT ","line":"98","C":[{"N":"arith","op":"-","calc":"a-a","sType":"1A","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"98","C":[{"N":"int","val":"65535"},{"N":"check","card":"?","diag":"1|1||arith","C":[{"N":"data","diag":"1|1||arith","C":[{"N":"varRef","name":"Q{}year","slot":"0"}]}]}]},{"N":"sequence","sType":"?NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"year_inverted\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"100","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}yearInverted","slot":"1","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"100"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"105","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"105","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"server_date_published\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"107","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}UnixTimestamp","role":"select","line":"107","C":[{"N":"slash","op":"/","sType":"*NA nQ{}UnixTimestamp","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDatePublished,NE nQ{http://www.w3.org/1999/xhtml}ServerDatePublished]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"112","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"112","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"server_date_modified\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"114","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}UnixTimestamp","role":"select","line":"114","C":[{"N":"slash","op":"/","sType":"*NA nQ{}UnixTimestamp","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}ServerDateModified,NE nQ{http://www.w3.org/1999/xhtml}ServerDateModified]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"119","C":[{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"119","C":[{"N":"data","diag":"1|0||gc","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]},{"N":"str","val":""}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"embargo_date\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"121","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}UnixTimestamp","role":"select","line":"121","C":[{"N":"slash","op":"/","sType":"*NA nQ{}UnixTimestamp","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}EmbargoDate,NE nQ{http://www.w3.org/1999/xhtml}EmbargoDate]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}UnixTimestamp"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}language","slot":"1","sType":"* ","line":"126","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Language","sType":"*NA nQ{}Language","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"126"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"language\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"128","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}language","slot":"1","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"128"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"forEach","sType":"* ","line":"132","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","sType":"*NE u[NE nQ{}TitleMain,NE nQ{http://www.w3.org/1999/xhtml}TitleMain]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"132"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"title\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"134","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"134","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"choose","sType":"* ","line":"136","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"136","C":[{"N":"attVal","name":"Q{}Language"},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}language","slot":"1"}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"title_output\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"138","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Value","name":"attribute","nodeTest":"*NA nQ{}Value","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"138"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"let","var":"Q{}abstracts","slot":"2","sType":"* ","line":"144","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"145","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","sType":"*NE u[NE nQ{}TitleAbstract,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstract]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"145"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"148","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"148","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"150","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"150","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"abstract\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"154","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}abstracts","slot":"2","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"154"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"let","var":"Q{}authors","slot":"3","sType":"* ","line":"166","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"167","C":[{"N":"sort","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","sType":"*NE u[NE nQ{}PersonAuthor,NE nQ{http://www.w3.org/1999/xhtml}PersonAuthor]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"167"},{"N":"sortKey","sType":"?A ","C":[{"N":"check","card":"?","sType":"?A ","diag":"2|0|XTTE1020|sort","role":"select","C":[{"N":"data","sType":"*A ","role":"select","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}SortOrder","sType":"*NA nQ{}SortOrder","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"168"}]}]},{"N":"str","sType":"1AS ","val":"ascending","role":"order"},{"N":"str","sType":"1AS ","val":"en","role":"lang"},{"N":"str","sType":"1AS ","val":"#default","role":"caseOrder"},{"N":"str","sType":"1AS ","val":"true","role":"stable"}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"171","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LastName","name":"attribute","nodeTest":"*NA nQ{}LastName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"171"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"173","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}FirstName","name":"attribute","nodeTest":"*NA nQ{}FirstName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"173"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"175","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"175","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"author\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"179","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}authors","slot":"3","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"179"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"doctype\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"205","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}Type","name":"attribute","nodeTest":"*NA nQ{}Type","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"205"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]},{"N":"let","var":"Q{}subjects","slot":"4","sType":"* ","line":"209","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"210","C":[{"N":"filter","sType":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"210","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Subject,NE nQ{http://www.w3.org/1999/xhtml}Subject]"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"attVal","name":"Q{}Type"},{"N":"str","val":"Uncontrolled"}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"212","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"212","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"214","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"214","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"subjects\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"218","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}subjects","slot":"4","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"218"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"belongs_to_bibliography\": "}]},{"N":"choose","sType":"?NT ","type":"item()*","line":"223","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"224","C":[{"N":"attVal","name":"Q{}BelongsToBibliography"},{"N":"int","val":"1"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"true"}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"false"}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"choose","sType":"* ","line":"236","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleSub,NE nQ{http://www.w3.org/1999/xhtml}TitleSub]","sType":"*NE u[NE nQ{}TitleSub,NE nQ{http://www.w3.org/1999/xhtml}TitleSub]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"236"},{"N":"let","var":"Q{}title_sub","slot":"5","sType":"*NT ","line":"237","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"238","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleSub,NE nQ{http://www.w3.org/1999/xhtml}TitleSub]","sType":"*NE u[NE nQ{}TitleSub,NE nQ{http://www.w3.org/1999/xhtml}TitleSub]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"238"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"240","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"240","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"242","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"242","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"?NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"title_sub\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"248","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}title_sub","slot":"5","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"248"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}title_additional","slot":"5","sType":"* ","line":"253","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"254","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","sType":"*NE u[NE nQ{}TitleAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAdditional]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"254"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"257","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"257","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"259","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"259","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"title_additional\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"265","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"265","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}title_additional","slot":"5"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"let","var":"Q{}abstract_additional","slot":"6","sType":"* ","line":"269","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"270","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","sType":"*NE u[NE nQ{}TitleAbstractAdditional,NE nQ{http://www.w3.org/1999/xhtml}TitleAbstractAdditional]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"270"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"272","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"272","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"274","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"274","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":", "}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"abstract_additional\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"280","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}abstract_additional","slot":"6","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"280"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"choose","sType":"* ","line":"284","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","sType":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"284"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"licence\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"286","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"286","bSlot":"0","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Licence,NE nQ{http://www.w3.org/1999/xhtml}Licence]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Name"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"291","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","sType":"*NA nQ{}CreatingCorporation","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"291"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"creating_corporation\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"293","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}CreatingCorporation","name":"attribute","nodeTest":"*NA nQ{}CreatingCorporation","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"293"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"298","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}ContributingCorporation","sType":"*NA nQ{}ContributingCorporation","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"298"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"contributing_corporation\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"300","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}ContributingCorporation","name":"attribute","nodeTest":"*NA nQ{}ContributingCorporation","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"300"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"305","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}PublisherName","sType":"*NA nQ{}PublisherName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"305"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"publisher_name\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"307","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublisherName","name":"attribute","nodeTest":"*NA nQ{}PublisherName","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"307"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"312","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}PublisherPlace","sType":"*NA nQ{}PublisherPlace","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"312"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"publisher_place\": \""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"314","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}PublisherPlace","name":"attribute","nodeTest":"*NA nQ{}PublisherPlace","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"314"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\","}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"319","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","sType":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"319"},{"N":"let","var":"Q{}geolocation","slot":"7","sType":"*NT ","line":"323","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"323","C":[{"N":"check","card":"?","diag":"0|0||concat","C":[{"N":"data","diag":"0|0||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]},{"N":"str","val":", "},{"N":"check","card":"?","diag":"0|2||concat","C":[{"N":"data","diag":"0|2||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]},{"N":"str","val":", "},{"N":"check","card":"?","diag":"0|4||concat","C":[{"N":"data","diag":"0|4||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]},{"N":"str","val":", "},{"N":"check","card":"?","diag":"0|6||concat","C":[{"N":"data","diag":"0|6||concat","C":[{"N":"slash","op":"/","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]},{"N":"sequence","sType":"?NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"geo_location\": "}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"BBOX ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"326","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}geolocation","slot":"7","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"326"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")\","}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"bbox_xmin\": "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"330","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}XMin","role":"select","line":"330","C":[{"N":"slash","op":"/","sType":"*NA nQ{}XMin","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMin"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"bbox_xmax\": "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"333","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}XMax","role":"select","line":"333","C":[{"N":"slash","op":"/","sType":"*NA nQ{}XMax","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}XMax"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"bbox_ymin\": "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"336","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}YMin","role":"select","line":"336","C":[{"N":"slash","op":"/","sType":"*NA nQ{}YMin","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMin"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"bbox_ymax\": "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"339","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}YMax","role":"select","line":"339","C":[{"N":"slash","op":"/","sType":"*NA nQ{}YMax","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Coverage,NE nQ{http://www.w3.org/1999/xhtml}Coverage]"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}YMax"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"let","var":"Q{}identifier","slot":"7","sType":"*NT ","line":"345","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"346","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","sType":"*NE u[NE nQ{}Identifier,NE nQ{http://www.w3.org/1999/xhtml}Identifier]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"346"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"348","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"348","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"350","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"350","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"identifier\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"356","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}identifier","slot":"7","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"356"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"],"}]},{"N":"let","var":"Q{}reference","slot":"8","sType":"*NT ","line":"360","C":[{"N":"doc","sType":"1ND ","base":"file:///home/administrator/tethys/tethys.myapp/public/assets2/solr.xslt","role":"select","C":[{"N":"forEach","sType":"* ","line":"361","C":[{"N":"axis","name":"child","nodeTest":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","sType":"*NE u[NE nQ{}Reference,NE nQ{http://www.w3.org/1999/xhtml}Reference]","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"361"},{"N":"sequence","sType":"* ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"363","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"ufCall","sType":"*","name":"Q{http://example.com/functions}escapeQuotes","coId":"0","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"363","bSlot":"0","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}Value"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\""}]},{"N":"choose","sType":"? ","line":"365","C":[{"N":"vc","op":"ne","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","line":"365","C":[{"N":"fn","name":"position"},{"N":"fn","name":"last"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":","}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"sequence","sType":"?NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"\"reference\": ["}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"371","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}reference","slot":"8","ns":"= xml=~ xsl=~ xs=~ fn=http://example.com/functions xlink=http://www.w3.org/1999/xlink gmd=http://www.isotc211.org/2005/gmd gco=http://www.isotc211.org/2005/gco json=http://www.w3.org/2013/XSL/json ","role":"select","line":"371"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"]"}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"}"}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"overridden"},{"N":"output","C":[{"N":"property","name":"Q{http://saxon.sf.net/}stylesheet-version","value":"30"},{"N":"property","name":"method","value":"text"}]},{"N":"decimalFormat"}],"Σ":"3281eba6"} \ No newline at end of file diff --git a/public/assets2/solr.xslt b/public/assets2/solr.xslt index 4b3dc22..d450820 100644 --- a/public/assets2/solr.xslt +++ b/public/assets2/solr.xslt @@ -207,8 +207,7 @@ - - + " " diff --git a/resources/js/apps/settings/basic_settings/BackgroundJob.vue b/resources/js/apps/settings/basic_settings/BackgroundJob.vue index 2c7064f..1530617 100644 --- a/resources/js/apps/settings/basic_settings/BackgroundJob.vue +++ b/resources/js/apps/settings/basic_settings/BackgroundJob.vue @@ -1,41 +1,21 @@