Re: Array validation

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