JSON-schema ontwerpen voor een adaptief formulier creating-adaptive-forms-using-json-schema
Adobe beveelt aan moderne en uitbreidbare gegevensvastlegging te gebruiken Kernonderdelenfor nieuwe Adaptieve Forms makenof Aangepaste Forms toevoegen aan AEM Sites-pagina's. Deze componenten betekenen een aanzienlijke vooruitgang in de aanmaak van Adaptive Forms en zorgen voor indrukwekkende gebruikerservaring. In dit artikel wordt een oudere aanpak beschreven voor de auteur Adaptive Forms die gebruikmaakt van stichtingscomponenten.
Vereisten prerequisites
Voor het ontwerpen van een adaptief formulier met behulp van een JSON-schema als formuliermodel is basiskennis van het JSON-schema vereist. Het wordt aanbevolen de volgende inhoud vóór dit artikel te lezen.
Een JSON-schema gebruiken als formuliermodel using-a-json-schema-as-form-model
Adobe Experience Manager Forms ondersteunt het maken van een adaptief formulier met een bestaand JSON-schema als formuliermodel. Dit JSON-schema vertegenwoordigt de structuur waarin gegevens worden geproduceerd of verbruikt door het back-end systeem in uw organisatie. Het JSON-schema dat u gebruikt, moet compatibel zijn met v4-specificaties.
De belangrijkste eigenschappen van het gebruiken van een Schema JSON zijn:
- De structuur van JSON wordt als een structuur weergegeven op het tabblad Inhoudszoeker in de ontwerpmodus voor een adaptief formulier. U kunt een element slepen van de JSON-hiërarchie naar het adaptieve formulier.
- U kunt het formulier vooraf invullen met JSON dat voldoet aan het bijbehorende schema.
- Bij verzending worden de gegevens die door de gebruiker zijn ingevoerd, verzonden als JSON die wordt uitgelijnd met het bijbehorende schema.
- U kunt het formulier ook maken op basis van het JSON-schema volgens de specificaties van het dialoogvenster Versie 2012-20.
Een JSON-schema bestaat uit eenvoudige en complexe elementtypen. De elementen hebben attributen die regels aan het element toevoegen. Wanneer deze elementen en kenmerken naar een adaptief formulier worden gesleept, worden ze automatisch toegewezen aan de corresponderende component Adaptief formulier.
Deze toewijzing van JSON-elementen met componenten Adaptief formulier ziet er als volgt uit:
"birthDate": {
"type": "string",
"format": "date",
"pattern": "date{DD MMMM, YYYY}",
"aem:affKeyword": [
"DOB",
"Date of Birth"
],
"description": "Date of birth in DD MMMM, YYYY",
"aem:afProperties": {
"displayPictureClause": "date{DD MMMM, YYYY}",
"displayPatternType": "date{DD MMMM, YYYY}",
"validationPatternType": "date{DD MMMM, YYYY}",
"validatePictureClause": "date{DD MMMM, YYYY}",
"validatePictureClauseMessage": "Date must be in DD MMMM, YYYY format."
}
}
Algemene schemaeigenschappen common-schema-properties
Het adaptieve formulier gebruikt informatie die beschikbaar is in het JSON-schema om elk gegenereerd veld in kaart te brengen. Met name:
- De
title
Deze eigenschap fungeert als label voor de componenten Adaptief formulier. - De
description
wordt ingesteld als lange beschrijving voor een component Adaptief formulier. - De
default
Deze eigenschap fungeert als de beginwaarde van een veld Adaptief formulier. - De
maxLength
eigenschap is ingesteld alsmaxlength
kenmerk van de tekstveldcomponent. - De
minimum
,maximum
,exclusiveMinimum
, enexclusiveMaximum
worden gebruikt voor de component Numeriek vak. - Om waaier voor te steunen
DatePicker component
aanvullende JSON-schemaeigenschappenminDate
enmaxDate
worden opgegeven. - De
minItems
enmaxItems
worden gebruikt om het aantal items/velden te beperken dat kan worden toegevoegd aan of verwijderd uit een deelvenstercomponent. - De
readOnly
eigenschap stelt dereadonly
kenmerk van een component Adaptief formulier. - De
required
geeft de eigenschap aan dat het veld Adaptief formulier verplicht is, terwijl in het deelvenster (waar het type object is) de uiteindelijke JSON-gegevens velden hebben met een lege waarde die overeenkomt met dat object. - De
pattern
Deze eigenschap wordt ingesteld als het validatiepatroon (reguliere expressie) in Adaptief formulier. - De extensie van het JSON-schemabestand moet .schema.json blijven. Bijvoorbeeld: <filename>.schema.json.
Voorbeeld JSON-schema sample-json-schema
code language-json |
---|
|
code language-json |
---|
|
De belangrijkste wijzigingen van de specificaties van JSON Schema V4 naar versie 2020-12 zijn:
- Id is gedeclareerd als
$id
- definities worden gedeclareerd als
$defs
Herbruikbare schemadefinities reusable-schema-definitions
De sleutels van de definitie worden gebruikt om herbruikbare schema's te identificeren. De herbruikbare schemadefinities worden gebruikt om fragmenten tot stand te brengen. Hieronder volgt een voorbeeld van een JSON-schema met definities:
{
"$schema": "https://json-schema.org/draft-04/schema#",
"definitions": {
"address": {
"type": "object",
"properties": {
"street_address": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" }
},
"required": ["street_address", "city", "state"]
}
},
"type": "object",
"properties": {
"billing_address": { "$ref": "#/definitions/address" },
"shipping_address": { "$ref": "#/definitions/address" }
}
}
In het bovenstaande voorbeeld wordt een klantrecord gedefinieerd, waarbij elke klant zowel een verzendadres als een factuuradres heeft. De structuur van beide adressen is zelfde-adressen heeft een straatadres, een stad en een staat— zodat is het een goed idee om de adressen niet te dupliceren. Het maakt het toevoegen en schrappen van gebieden voor om het even welke toekomstige veranderingen gemakkelijk.
Velden vooraf configureren in JSON-schemadefinitie pre-configuring-fields-in-json-schema-definition
U kunt de aem:afProperties eigenschap om het veld JSON-schema vooraf te configureren voor toewijzing aan een aangepaste component Adaptief formulier. Hieronder ziet u een voorbeeld:
{
"properties": {
"sizeInMB": {
"type": "integer",
"minimum": 16,
"maximum": 512,
"aem:afProperties" : {
"sling:resourceType" : "/apps/fd/af/components/guideTextBox",
"guideNodeClass" : "guideTextBox"
}
}
},
"required": [ "sizeInMB" ],
"additionalProperties": false
}
Acceptabele waarden voor een adaptieve formuliercomponent beperken limit-acceptable-values-for-an-adaptive-form-component
U kunt de volgende beperkingen toevoegen aan JSON-schemaelementen om de waarden te beperken die acceptabel zijn voor een adaptieve formuliercomponent:
Schema-compatibele gegevens inschakelen enablig-schema-compliant-data
Voer de volgende stappen uit om alle op JSON-schema's gebaseerde Adaptieve Forms in staat te stellen schema-compatibele gegevens te genereren bij het verzenden van formulieren:
- Ga naar Experience Manager webconsole op
https://server:host/system/console/configMgr
. - Zoeken Adaptive Form and Interactice Communication Web Channel Configuration.
- Selecteer deze optie om de configuratie te openen in de bewerkingsmodus.
- Selecteer de Generate Schema Compliant Data selectievakje.
- Sla de instellingen op.
Niet-ondersteunde constructies non-supported-constructs
Adaptive Forms biedt geen ondersteuning voor de volgende JSON-schemaconstructies:
- Null-tekst
- Unietypen zoals alle, en
- OneOf, anyOf, allOf, and not
- Alleen homogene arrays worden ondersteund. De itembeperking moet dus een object zijn en geen array.
- URI-verwijzingen in $ref
Veelgestelde vragen frequently-asked-questions
Waarom kan ik geen afzonderlijke elementen van een subformulier (structuur gegenereerd van een complex type) slepen voor herhaalbare subformulieren (waarden voor minOccurs of maxOccurs zijn groter dan 1)?
In een herhaalbaar subformulier moet u het volledige subformulier gebruiken. Als u alleen selectieve velden wilt, gebruikt u de volledige structuur en verwijdert u de ongewenste velden.
Ik heb een lange complexe structuur in de Inhoudszoeker. Hoe kan ik een specifiek element vinden?
U hebt twee opties:
- Door de boomstructuur schuiven
- Gebruik het vak Zoeken om een element te zoeken
Wat moet de extensie van het JSON-schemabestand zijn?
De extensie van het JSON-schemabestand moet .schema.json zijn. Bijvoorbeeld: <filename>.schema.json.
Zie ook see-also
- Een AEM adaptief formulier maken
- Een AEM adaptief formulier toevoegen aan de AEM Sites-pagina
- Thema's toepassen op een AEM adaptief formulier
- Componenten toevoegen aan een AEM adaptief formulier
- CAPTCHA gebruiken in een AEM adaptieve vorm
- PDF-versie (DoR) van een AEM adaptief formulier genereren
- Een AEM adaptief formulier vertalen
- Adobe Analytics inschakelen voor een adaptief formulier om het formuliergebruik bij te houden
- Aangepast formulier verbinden met Microsoft SharePoint
- Adaptief formulier aansluiten op Microsoft Power Automate
- Adaptief formulier aansluiten op Microsoft OneDrive
- Adaptief formulier aansluiten op Microsoft Azure Blob Storage
- Aangepast formulier verbinden met Salesforce
- Adobe Sign gebruiken in een AEM adaptief formulier
- Een nieuwe landinstelling toevoegen voor een adaptief formulier
- Adaptieve formuliergegevens naar een database verzenden
- Verzend AanpassingsGegevens van de Vorm naar een eindpunt REST
- Adaptieve formuliergegevens naar AEM workflow verzenden
- Forms Portal gebruiken om AEM Adaptive Forms op een AEM website weer te geven
- Versies, opmerkingen en annotaties toevoegen aan een adaptief formulier
- Adaptieve Forms vergelijken