Outil qui peut combiner plusieurs fichiers XSD en un seul?
J'ai besoin de créer sérialiseur XML classes pour environ 65 fichiers XSD, pour lequel je suis à l'aide de Microsoft XSD.EXE pour générer le code C#...
Cependant, je continue à courir dans la Fenêtre CMD de la limite de caractères dans le fichier de sortie (dans lequel XSD.EXE combine le nom de chaque XSD inclus): "Le chemin d'accès spécifié, le nom de fichier, ou les deux sont trop longs. Le nom de fichier complet doit être inférieure à 260 caractères, et le nom du répertoire doit être de moins de 248 caractères."
Pour faire une longue histoire courte, il semble que la seule façon que je peux obtenir tous ces pour valider et générer de l'ensemble est si je peux fusionner tous les XSDs (de référencement les includes/importations, ce qui XSD.EXE ne permet pas de résoudre le schemaLocation de toute façon) en une seule grande.
S'il vous plaît dites-moi qu'il existe un outil pour ce faire...
- Avez-vous essayé de LINQ to XSD? C'est un bon remplacement pour XSD.EXE linqtoxsd.codeplex.com
- K-non, je N'avais pas entendu parler de LINQ to XSD avant. Je vais jeter un oeil.
Vous devez vous connecter pour publier un commentaire.
Ce que vous pouvez faire est de créer un autre nouveau fichier appelé fichier.xsd contenant tous les noms de schéma en elle et puis le truc, c'est le nom du dernier fichier de schéma avec .\ comme préfixe.
Fichier.xsd
Maintenant, exécutez la commande “xsd.exe /p:file.xsd /classes” et vous obtenez le fichier de la classe générée 🙂
Pour de futures références, un autre outil conçu pour XML Schema refactoring est QTAssistant - je suis associé avec elle.
À clarifier votre question et j'espère aider les autres... Une chose qui ne peut pas être atteint, comme vous l'avez demandé, c'est que l'on ne peut pas de référence des importations: un fichier XSD est associé à un Schéma XML qui permet de ne pas permettre à plus d'un espace de noms cible par xsd:schéma de l'élément.
Un xsd:inclure peut être "inline"; car les fichiers doivent avoir le même espace de noms cible ou d'un match, le "caméléon" espace de noms approche de la conception, il est possible de fusionner le contenu d'un fichier dans l'autre.
Un xsd:import ne peuvent pas être "inline"... à moins que vous refactoriser espaces de noms cible ainsi. Cependant, ce ne serait pas produire un équivalent schéma.
Si vous avez entièrement défini XML Schéma de jeu de l'auteur à l'échelle de 65 fichiers XSD, avec, disons, 10 espaces de noms, le "canonique" de re-compte de Schéma XML des fichiers doit avoir au moins 10 fichiers.
Je n'ai localiser un outil (en gros une transformation XSLT) pour faire ce genre de chose: Paul Kiel est Schéma XML de l'Aplatissement, mais je n'ai pas eu mes mains sur elle encore.
D'autres sources disent que les outils comme les Oxygen XML Editor et XMLSpy pouvez le faire aussi, mais je ne peux pas comprendre comment.
-> http://www.oxygenxml.com/xml_schema_editor.html#xml_schema_flatten
Dans mon cas, j'ai résolu le problème en passant par un autre détour: raccourcir le nom de chaque entrée XSD, de sorte que XSD.EXE s'sortie combinée nom-qui vous ne pouvez pas choisir--est en dessous de la 260 limite de caractères.
J'ai juste commencé à l'aide de Altova XML Spy ( 1 jour )
Pour aplatir .schéma xsd en un seul document... qui va encore valider, et fournir des références de cliquer dans eclipse...
Il semble très bien fonctionner.
Il suffit d'ajouter .\ préfixe le nom de la dernière .xsd(schéma) fichier et placez-le dans virgules e.g ".\dernier.xsd". La sortie de la classe sera généré avec le dernier schéma de nom de fichier.