Propiedades sin especificar

www.altova.com Expandir/Contraer todos Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Guía y referencia del usuario > JSON y esquemas JSON > Vista Esquema JSON >

Propiedades sin especificar

En el fragmento de código que aparece más abajo puede ver que la palabra clave required determina que es obligatorio que este objeto tenga cuatro propiedades. Sin embargo, solamente se definen tres de estas cuatro propiedades. La cuarta propiedad, city, está sin definir. El estado de las propiedades definidas es Especificada, mientras que la propiedad que está sin definir tiene el estado Sin especificar.

 

Clic para expandir/contraerFragmento de código: propiedades especificadas y sin especificar

{

    "$schema": "http://json-schema.org/draft-04/schema#",

    "description": "JSON Schema generated by XMLSpy v2016 (http://www.altova.com)",

    "type": "object",

    "properties": {

        "emailtype": {

            "type": "string"

        },

        "emailaddress": {

            "type": "string",

            "format": "email"

        },

        "citycode": {

            "type": "number"

        }

    },

    "required": [

        "emailtype",

        "emailaddress",

        "citycode",

        "city"

    ],

    "additionalProperties": false

}

 

JSONSpecified     JSONUnspecified

En la Vista de diseño la propiedad sin especificar se marca en rojo porque es obligatoria según el esquema pero no está definida. Aunque el esquema JSON es válido en sí mismo, los documentos de instancia que se validen con este esquema no lo serán. El motivo es que (i) si falta la propiedad city, el documento no será válido porque la propiedad city es obligatoria; (ii) si la propiedad city está presente, el documento no será válido porque la propiedad city está sin definir y no hay comodín de propiedad que permita su presencia (consulte el párrafo Especificar una propiedad de forma implícita) .

 

Para crear una definición para una propiedad que está sin especificar:

 

1.Seleccione la propiedad que está sin especificar en la Vista de diseño.
2.En el ayudante de entrada Detalles marque la casilla Especificada (imagen anterior). También puede activar/desactivar esta marca con el comando Especificada del menú contextual.
3.Modifique la definición de la propiedad según corresponda.

 

Especificar una propiedad de forma implícita

Puede especificar una propiedad de forma implícita añadiendo una propiedad de patrón o un comodín de propiedad adecuados. En la imagen siguiente puede ver que se añadió un comodín de propiedad. Con este comodín coincidirá una propiedad de la instancia cuyo nombre sea city. Por tanto, en el esquema, podemos decir que la propiedad city está especificada de forma implícita por medio del comodín. El documento de instancia será válido según el esquema si contiene la propiedad city.

JSONImplicitlySpecified

Observe los símbolos que aparecen en los recuadros de la propiedad especificada de forma implícita y del comodín de propiedad. Cada símbolo es un vínculo a la otra propiedad. Haga doble clic en cualquiera de estos símbolos para seleccionar la otra propiedad.

 


© 2019 Altova GmbH