Est-il possible de générer un schéma XML d'une base de données par programmation avec .Net et C#? Je veux regarder dans NDbUnit mais pour de grandes bases de données il ne serait pas vraiment faisable de faire un schéma manuellement?Obtention du schéma XML à partir de la base de données MS SQL
Répondre
Est-il possible de générer un schéma XML à partir d'une base de données?
Il est certain que XMLSpy peut générer un schéma XML à partir d'une base de données.
Il y a another way, bien que je ne l'ai jamais testé:
create table Person
(
Age int not NULL check(Age > 0) ,
Height numeric(10,2) not NULL check(Height > 5),
Gender varchar(5) not null check(Gender in ('M', 'F', 'O')),
BirthDate datetime null,
)
DECLARE @schema xml
SET @schema = (SELECT * FROM Person FOR XML AUTO, ELEMENTS, XMLSCHEMA('PersonSchema'))
select @schema
je pourrais le faire comme ceci:
DataSet results = new DataSet();
SqlCommand command = new SqlCommand("SELECT * FROM table", new SqlConnection(connectionString));
SqlDataAdapter sqlAdapter = new SqlDataAdapter(command);
sqlAdapter.FillSchema(results, SchemaType.Mapped);//Fills dataset with schema from query
results.WriteXmlSchema(mySchema);
Le problème est, comment pourrais-je adapter cette méthode afin qu'il puisse être utilisé avec une quantité indéterminée de tables? Sans construire une chaîne bien que concaténation qui n'est pas exactement idéale!
Utilisez le modèle de jeu de données typé de MyGeneration pour générer automatiquement le fichier XSD (http://www.mygenrationssoftware.com). C'est gratuit, OSS, et fonctionne très bien. En outre, l'équipe NDbUnit travaille actuellement sur un outil complémentaire à NDbUnit qui permettra non seulement d'extraire le schéma de la base de données, mais aussi de modifier les données de test contenues dans le jeu de données XML qui l'accompagne. L'ETA pour cet outil est vers la mi-juillet.
- 1. Obtention de données XML à partir de la 3ème fonction?
- 2. Génération de schéma SQL à partir de XML
- 3. Existe-t-il un outil pour générer un schéma de base de données à partir du schéma XML?
- 4. Comment puis-je importer un schéma de base de données dans MS Access 2003 à partir d'un fichier texte sql?
- 5. Obtention d'un fichier XML à partir d'un jeu de données
- 6. MySQL: Sélection de données à partir de MS SQL Server
- 7. Création de document XML à partir du schéma XSL
- 8. Schéma de base de données de DomainModel
- 9. convertir la table de base de données en fichier de schéma XML
- 10. Obtention des données des derniers mois à partir de la base de données
- 11. Confusion de schéma de base de données
- 12. Données de test générées automatiquement à une base de données à partir d'un schéma?
- 13. base de données MS Access au format XML, .NET
- 14. Obtention de données à partir d'un DataGrid
- 15. Refactoring à partir du modèle de base de données partagée
- 16. Requête SQL pour un schéma de base de données
- 17. Du XML brut (pas de schéma) à la classe C#?
- 18. DataAdapter Sélectionner une chaîne à partir du schéma de la table de base?
- 19. Structure de la structure XML dans le schéma de la base de données
- 20. Obtention du schéma pour une table
- 21. Constructeur de base de données du schéma MySQL
- 22. Comment mieux importer/exporter XML vers la base de données, ayant XML avec schéma?
- 23. MS SQL Server restauration de base de données à partir de MDF et LDF ne montrant pas les dernières données
- 24. MS Sql Server 2000: requête de base de données multiples
- 25. Problème lors de la lecture des données nchar à partir de la base de données Oracle
- 26. NHibernate mappage des données XML à la base de données
- 27. rails mise à jour schéma de base de données
- 28. Obtention du SQL à partir d'une migration Rails
- 29. La mise à jour du schéma de base de données d'infrastructure ADO.NET Entity est-elle possible?
- 30. Évaluation de la précision du schéma XML généré
Petite note à la méthode native: cette requête retournera en effet le schéma XML de la table, mais aussi toutes les données qu'elle contient. Pour obtenir uniquement le schéma, remplacez "SELECT * FROM" par "SELECT TOP 0 * FROM". –