---
title: "Conversione da XML a XSD: Generazione di uno schema a partire da più istanze XML"
date: "2021-08-25"
categories: 
  - "development"
  - "tools"
  - "xml"
tags: 
  - "xml-editor"
  - "xml-schema"
  - "xmlspy"
  - "xsd"
description: Scoprite come generare un file XSD a partire da più istanze XML utilizzando XMLSpy, un potente editor XML che semplifica la creazione di schemi per file correlati.
---
Status: #blog

Tags:  #xml-editor #xml-schema #xmlspy #xsd

Categories: [development](/blog/it/category/development.md) | [xml](/blog/it/category/xml.md)
# Conversione da XML a XSD: Generazione di uno schema a partire da più istanze XML

Recentemente, ho parlato con uno dei nostri ingegneri di supporto riguardo alle domande più frequenti che riceve dai clienti. Una di queste, che viene posta spesso, riguarda la generazione di schemi, in particolare: "Come posso generare un file XSD a partire da un file XML?". La risposta, ovviamente, è utilizzare il vostro editor XML preferito. XMLSpy è in grado di generare un file XSD valido a partire da un DTD, una struttura di database relazionale, uno schema JSON e, naturalmente, un'istanza XML.

Ma ciò che sorprende molti clienti è che l'editor XML creerà anche uno schema XML basato su _gruppo_ di file XML correlati, e questa è una necessità comune. Vediamo come funziona.

![](/blog/images/PR112123_700x335.jpg)

<!--more-->

## Genera un file XSD

Supponiamo di aver ereditato un progetto di sviluppo web, ricevendo come punto di partenza un insieme di file XML, ma senza uno schema XML ([XML Schema](https://www.w3.org/XML/Schema)). Per generare un file XSD per questi file, devo innanzitutto aggiungerli a un progetto XMLSpy. Questo sarà utile in seguito, poiché il progetto raggruppa tutti i file correlati in un'unica struttura di cartelle, facile da gestire, dove posso cercare file specifici, applicare trasformazioni XSLT, eseguire operazioni batch come la validazione a livello di progetto e la ricerca all'interno dei file, e così via.

Vale la pena dedicare un momento a parlare del progetto XMLSpy stesso. Le cartelle possono corrispondere a directory reali nel sistema di file, oppure posso definire estensioni di tipo di file per ciascuna cartella, in modo che i file comuni siano raggruppati in un unico posto comodo. Le cartelle del progetto sono cartelle virtuali e non devono necessariamente corrispondere a una struttura gerarchica dei file sul server stesso.

Posso anche assegnare diversi parametri di trasformazione XSL a ciascuna cartella e posso avere lo stesso file fisico contenuto in più cartelle di progetto. Questo è particolarmente utile quando devo mantenere i dati in un unico file XML e utilizzare diversi fogli di stile XSL per produrre risultati diversi. E, naturalmente, la gestione dei progetti di XMLSpy si integra con la maggior parte dei sistemi di controllo delle versioni.

OK, torniamo a [generare il file XSD](https://www.altova.com/it/xmlspy-xml-editor/xsd-to-xml). Il primo passo è selezionare "Nuovo progetto" dal menu "Progetto". XMLSpy crea un progetto di base con cartelle di esempio per vari tipi di file. È facile aggiungere cartelle personalizzate, se necessario. Per aggiungere i file che ho ricevuto a questo nuovo progetto, faccio clic con il tasto destro sulla cartella "File XML" e seleziono "Aggiungi file..."

![Creare un progetto XML](https://lh3.ggpht.com/-CU_6VD_ekWM/UP6ivUhf0nI/AAAAAAAAATE/NjKHHB7Ms7Q/clip_image001_thumb.png?imgmax=800 "Creating an XML Project")

...e sfogliate le cartelle per selezionare i file XML da utilizzare per il sito web. Questo è un momento opportuno per salvare il progetto con un nome descrittivo, e questo permette anche di salvare le nuove associazioni di file aggiunte al progetto.

![Progetto XML](https://lh5.ggpht.com/-V3GvW60FxRw/UP6iwRG9DuI/AAAAAAAAATU/nm9geL3zWhA/clip_image002_thumb.png?imgmax=800 "XML Project")

Ora, tutto ciò che devo fare è fare clic con il tasto destro sulla cartella "File XML" e selezionare "Genera DTD/Schema...", quindi esaminare o aggiornare le opzioni configurabili.

![Funzionalità di conversione da XSD a XML in XMLSpy](https://lh3.ggpht.com/-tqOErpnsdVo/UP6ixFWQwAI/AAAAAAAAATk/1TCQL6s_ubM/clip_image003_thumb.png?imgmax=800 "Generate XSD Dialog")

Questo processo genererà un file XSD basato su tutti i file XML inclusi nella cartella. Dopo aver cliccato su "OK", verrà richiesto di salvare lo schema XML generato automaticamente, e questo si aprirà nella [visualizzazione grafica dello schema XML](https://www.altova.com/it/xml-schema-editor.html). Di seguito sono elencati gli elementi globali generati in base ai file di esempio XML:

![Schema XSD generato a partire da diverse istanze XML](https://lh6.ggpht.com/-5xXyRqVd_jo/UP6ixwkADUI/AAAAAAAAAT0/UQ5bJfBpFaY/clip_image004_thumb.png?imgmax=800 "Schema Globals")

Cliccando sull'icona dell'albero accanto a qualsiasi elemento, è possibile visualizzare il modello di contenuto dettagliato.

![Modello di contenuto XSD modificabile](https://lh4.ggpht.com/-V7dptViaW9w/UP6iypwrRqI/AAAAAAAAAUE/RI7IL9P1Ojg/clip_image005_thumb.png?imgmax=800 "XSD Content Model")

Il paradigma di progettazione grafica dell'editor [XSD](https://www.altova.com/it/xmlspy/xsd-editor.html) rende semplice perfezionare e modificare questo schema in base alle esigenze.

Ecco fatto: in pochi semplici passaggi, ho generato uno schema valido a partire da un insieme di file di esempio.

Quali funzionalità di XMLSpy semplificano il vostro lavoro quotidiano? Oppure, c'è una funzionalità che vi piacerebbe vedere aggiunta per risparmiare tempo? Saremo lieti di ricevere i vostri commenti. Lasciate un commento qui sotto!
