- From: Leyla Garcia <ljgarcia@ebi.ac.uk>
- Date: Mon, 16 Oct 2017 17:10:14 +0100
- To: BATISTA Dominique <Dominique.BATISTA@france-bioinformatique.fr>, "public-bioschemas@w3.org" <public-bioschemas@w3.org>
- Message-ID: <4d510641-764d-b4ec-8cc6-ff173b786b4d@ebi.ac.uk>
Hi Dominique,
Perfect! It makes total sense. Just wanted to be sure we were doing it
alright for the validator. Thanks!
Cheers,
On 16/10/2017 17:06, BATISTA Dominique wrote:
> Hello Leyla,
>
> You can definitely use single values outside arrays if you have a
> multiple values field but only have one value to provide. I'd even go
> further and promote the use of arrays *only* when more than one value
> is to be provided.
> It doesn't make a lot of sense programaticaly to use an array
> structure when you only have one object to provide.
>
> The logic behind my code goes like this:
>
> myjson = json_to_validate;
> for (field in myjson){
> if (typeof(field)=="string") { process_string(field); }
> else if (typeof(field)=="object") { process_object(field); }
> else if (typeof(field)=="array") {
> for (value in field) {
> if (typeof(value)=="string"){ process_string(value); }
> elseif (typeof(value)=="object") { process_object(value); }
> }
> }
> }
>
> It doesn't matter how you provide your single values. Whichever you
> choose to use (an array or not), it will find a corresponding condition.
>
> Hope this answered your question :)
>
> Best regards,
>
> Dominique Batista
> Ingénieur Web IFB Core
> CNRS - UMS3601
> Tel: 01.69.82.46.92
> Site: http://www.france-bioinformatique.fr
> ------------------------------------------------------------------------
> *From:* Leyla Garcia [ljgarcia@ebi.ac.uk]
> *Sent:* Monday, October 16, 2017 5:46 PM
> *To:* public-bioschemas@w3.org; BATISTA Dominique
> *Subject:* Array validation
>
> Hi Dominique,
>
> It came to my mind that in the validator, when an array is expected,
> you validate that at least one element is present.
> If it is only one element, does it have to be inside an array? In
> schema.org, as many are always possible, if you need only one, then
> you do not use an array.
>
> For instance, for adataset you can have multiple distributions:
> "distribution": [
>
> {
>
> "@type": "DataDownload",
>
> "name": "UniParc XML",
>
> "fileFormat": "xml",
>
> "contentURL":
> "ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/uniparc/uniparc_all.xml.gz"
>
>
> },
>
> {
>
> "@type": "DataDownload",
>
> "name": "UniParc FASTA",
>
> "fileFormat": "fasta",
>
> "contentURL":
> "ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/uniparc/uniparc_active.fasta.gz"
>
>
> }
>
> ],
>
> Or you can have only one:
> "distribution":
>
> {
>
> "@type": "DataDownload",
>
> "name": "UniParc XML",
>
> "fileFormat": "xml",
>
> "contentURL":
> "ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/uniparc/uniparc_all.xml.gz"
>
>
> },
>
>
> And both are valid in Bioschemas. Will both of them become as valid in
> your validator?
>
> Regards,
Received on Monday, 16 October 2017 16:10:40 UTC