2010-07-16 16 views
2

BizTalk a produit le préfixe par défaut de l'espace de noms en tant que NS0. Existe-t-il un moyen de le remplacer pour générer quelque chose de différent sans utiliser un XSLT (c'est un overhead quand le schéma change, XSLT doit aussi être mis à jour)? Quelque chose commePréfixe par défaut de l'espace de noms BizTalk

<pidx:Invoice> 

et non

<ns0:Invoice> 

Cela devrait être simple (après tout c'est juste un préfixe d'espace de noms), mais les clients sont analyse syntaxique de document au lieu de l'utiliser comme un XML avec espace de noms, et ayant pas Le préfixe d'espace de nommage attendu leur cause du chagrin.

Merci.

Répondre

2

Non, il n'y en a pas.

Une réponse kludgey est de convertir le XML en une chaîne et de rechercher/remplacer.

+0

D'accord. Bien que je n'aime pas l'approche et après avoir discuté avec des gens au travail, nous sommes arrivés à une solution différente. Nous pouvons avoir un composant de pipeline personnalisé qui prendra en compte l'espace de noms, le préfixe et l'expression XSLT et l'appliquera sur la sortie. La carte pour la sortie serait configurée pour ne produire aucun espace de noms du tout (de sorte que ns0 ne figure sur aucun élément) et cela devrait faire l'affaire d'une manière plus efficace que les remplacements de chaînes en exploitant .NET XsltTransfomation. –

1

Vous pouvez le faire. Je devais le faire en appelant une API Google, qui nécessite des préfixes d'espace de noms spécifiques.

La méthode consiste à utiliser la propriété Imports au niveau <Schema> dans votre XSD. À l'aide de la boîte de dialogue Imports, vous pouvez définir des préfixes spécifiques dans chaque espace de noms.

Vous devrez diviser votre schéma en au moins deux XSD distincts afin de pouvoir importer l'un dans l'autre et redéfinir le préfixe à ce moment-là.

+0

Salut Randy, Je suis désolé, mais il semble que je ne semble pas être en mesure de reproduire cela. Existe-t-il un moyen de configurer un projet de démonstration simple et de déclencher un incendie sur mon adresse e-mail? Feldman.Sean at gmail.com Merci, Sean –

Questions connexes