Convertir instance XML vers/depuis JSON/YAML
Si le document actif est un document XML, cette commande génère un document JSON ou YAML depuis le document XML. Si le document actif est un document JSON ou YAML, la commande en génère un document XML. Le document généré est ouvert dans une nouvelle fenêtre et peut ensuite être enregistré dans n'importe quel endroit. Les options de conversion sont décrites ci-dessous. Pour des informations sur la prise en charge de JSON et de l’édition JSON dans XMLSpy, voir la section JSON et JSON Schema. Pour des informations concernant YAML, voir la section YAML.
Conversions d'échantillon
Ci-dessous, vous trouverez un exemple d'un document de source XML, et en-dessous, les documents JSON et YAML JSON générés par la commande Convertir Instance XML vers/depuis JSON/YAML.
Document XML
<?xml version="1.0" encoding="UTF-8"?>
<Person first="Jim" last="James">
<Address>
<street>4 New Street</street>
<city>New York</city>
<state>NY</state>
<code>10123</code>
</Address>
<Tel type="home">
123 123-1234
</Tel>
<Tel type="office">
123 987-9876
</Tel>
</Person>
Pour convertir un document XML en JSON ou YAML, rendre le document XML actif et cliquez sur la commande Convertir l'instance XML vers/depuis la commande JSON/YAML.
Document JSON
{
"XML": {
"version": 1,0,
"encoding": "UTF-8"
},
"Person": {
"first": "Jim",
"last": "James",
« Adresse » : {
"street": "4 New Street",
"city": "New York",
"state": "NY",
"code": 10123
},
"Tel": [ { "type": "home",
"Text": "\r 123 123-1234\r "}, { "type": "office",
"Text": "\r 123 987-9876\r "} ]
}
}
Pour convertir un document JSON en XML, rendre le document JSON actif et cliquer sur la commande Convertir l'instance XML vers/depuis la commande JSON/YAML.
Document YAML
Person:
"@first": Jim
"@last": James
Address:
street: 4 New Street
city: New York
state: NY,
code: "10123"
Tel:
- "@type": home
$: |
123 123-1234
- "@type": office
$: |
123 987-9876
Pour convertir un document YAML en XML, rendre le document YAML actif et cliquer sur la commande Convertir l'instance XML vers/depuis la commande JSON/YAML.
Options de conversions XML en JSON/YAML
Lorsque vous cliquez sur la commande Convertir instance XML vers/depuis JSON/YAML pour convertir un document d'instance XML vers un document d'instance JSON ou YAML, le dialogue Convertir XML vers JSON/YAML (capture d'écran ci-dessous) apparaît. Vous pouvez sélectionner si vous souhaitez convertir en commentaires JSON, JSON5, Commentaires JSON ou YAML. Ensuite, définir les options de conversion que vous souhaitez et cliquez sur OK. Un document d'instance JSON ou YAML sera généré depuis l'instance XML et le document généré sera ouvert dans une nouvelle fenêtre.
La première des deux options est de définir si vous souhaitez ajouter des préfixes aux noms de propriété JSON/YAML afin d'éviter des conflits avec des éléments se trouvant dans le même niveau. Les deux listes ci-dessous expliquent la procédure. L'attribut XML somenode a été converti en une propriété JSON/ YAML @somenode. De cette manière, un conflit avec le nœud créé depuis l’élément XML element somenode (qui est la propriété JSON/YAML somenode) est évité.
Instance XML
<root somenode="value">
<somenode>content</somenode>
</root>
Instance JSON
{
"root": {
"@somenode": "value",
"somenode": "content"
}
}
Instance YAML
root:{"@somenode":"value",somenode:"content"}
Les options suivantes vous permettent de spécifier si certains types de nœuds XML doivent être convertis ou pas. Si des commentaires XML sont inclus, ils reçoivent le nom "#". Les nœuds de texte (qui se produisent généralement dans des éléments à contenu mixte) reçoivent le nom "$". Si un nœud XML a un préfixe d’espace de noms, alors le nom JSON/YAML correspondant sera créé avec ce préfixe d’espace de noms. Si des éléments portant le même nom existe au même niveau, ils seront considérés comme des composants égaux. De manière semblable, les nœuds tels les commentaires, les instructions de traitement et le texte() au même niveau sont également des composants égaux. Si des composants égaux sont présents au même niveau, vous pourrez choisir si vous souhaitez créer un tableau ou pas. Les options sont soit créer un tableau à partir de tous les composants égaux, seulement à partir de composants égaux voisins, soit de ne pas créer de tableau du tout.
L’option Utiliser info de type Schéma XML permet des conversions à être faites sur la base du type de Schéma XML du nœud source. Par exemple, si un nœud est défini dans le schéma comme étant de type xs:string, la propriété d'objet JSON cible sera de type string et sera entourée de guillemets. Cela est utile si, par exemple, un nombre est stocké en tant que string dans le nœud XML de source et la conversion en JSON doit aussi être fidèle en terme de type.
JSON/YAML en options de conversion XML
Lorsque vous cliquez sur la commande Convertir instance XML vers/depuis JSON/YAML pour convertir un document d’instance JSON ou en un document d’instance XML, puis Convertissez JSON/YAML en dialogue XML (capture d’écran ci-dessous) lorsqu’il apparaît. Définir les options de conversion que vous souhaitez et cliquer sur OK. Un document d'instance XML sera généré depuis l'instance JSON ou YAML et le document XML généré s'ouvrira dans une nouvelle fenêtre.
Veuillez prendre note des points suivants :
•Les propriétés d'objet JSON/YAML sont converties en éléments XML. Les premières options dans le dialogue vous permettent de choisir si quelques types de propriétés sont crées ou non.
•Encoder les deux-points dans les noms de propriété : Si sélectionné, les colonnes dans les noms JSON/YAML sont encodées et ne pas créées comme colonnes. Si non sélectionnés, les deux-points sont laissés tels quels.
•Garder l’information de type de valeur JSON : Si sélectionnée, l’information de type JSON d’une propriété est créée comme paire d’attribut-valeur de l’élément correspondant.
•Créer l’élément de conteneur pour chaque table JSON : L’élément de conteneur dans le document XML obtiendra le nom de l’objet de la table JSON. Les items de l'array JSON sont créés en tant qu'éléments XML dans ce conteneur. Ils reçoivent les noms que vous avez spécifiés dans la fenêtre de saisie Nom d'élément d'item de tableau.