none
Probleme beim Deploy eines Schemas

    Frage

  • Hallo ich habe Probleme beim Deploy von Schemata.

    In meinem Project habe ich 2 Schemata die vom API (American Petroleum Institute) zur Verfügung gestellt werden. Es handelt sich dabei um das Schema PIDXLib_1-0xsd und dem Schema OrderCreate_1-0.xsd.

    OrderCreate includiert PIDXLib und beim Deploy aus VisualStudio heraus werden auf dem BizTalk nun mehrere Schemata mit dem gleichen Namespace angelegt. Das führt nun dazu das meine Message nicht mehr verarbeitet wird weil sie beim Eingang keinem Schema zugeordnet werden kann da es mehrere Schemata mit gleichem Namespace (http://www.api.org/pidXML/v1.0) gibt.

    Was mache ich falsch?

     

     

    Donnerstag, 20. Januar 2011 06:21

Alle Antworten

  • Grundsätzlich darf es - wie du auch erkannt hast - nur ein Schema mit dem Namespace geben. Besser gesagt geht das garnicht. Das liegt vor allem daran, dass BizTalks ich intern für jedes Artifakt (Schema, Orchestration, Map, usw.) in einer DB-Tabelle merkt, in welcher Assembly die abgelegt sind.

    Aber wieso legst du diese doppelt ab? Oder legst du unterschiedliche Versionen der Assembly ab? Sonst müsste BizTalk beim Deployment schon meckern.

    Ich versteh noch nicht ganz wieso das ("beim Deploy aus VisualStudio heraus werden auf dem BizTalk nun mehrere Schemata mit dem gleichen Namespace angelegt") passieren soll? Kannst du noch ein paar weitere Informationen dazu posten?


    If you like my post or consider it as a valid answer, please use the buttons to show me - Oliver

    http://pi.hauth.me

    Donnerstag, 20. Januar 2011 07:51
  • ich erhalte bei Deployment warnings das ein Schema mit dem Namespace bereits existiert. Warum das Anlegen passiert weiss ich auch nicht. Leider kann ich hier irgendwie keine Dateien anhängen sonst hätte ich die beide Schemata plus ein Bild wie es im BT aussieht mal angehängt

     

    Problem ist eben das das eine Schema keine Root node definiert hat und er nun für jedes Node in diesem Schema beim Deploy eines in Biztalk erzeugt und den Node als RootNode ansetzt (PIDX) und beim OrderCreate das Gleiche nochmal da dort PIDX included ist

    Donnerstag, 20. Januar 2011 08:02
  • Wenn du kannst, sende mal die Infos oder XSDs an oliver (at) hauth (dot) me. Dann kann ich mir das anschauen und dir hier antworten. Kann es so leider nur eingeschränkt nachvollziehen.
    If you like my post or consider it as a valid answer, please use the buttons to show me - Oliver

    http://pi.hauth.me

    Donnerstag, 20. Januar 2011 08:10
  • ist unterwegs..
    Donnerstag, 20. Januar 2011 08:16
  • Hallo,

    in BizTalk muss die Kombination aus Target Namespace und Root-Knoten eines XMLs eindeutig einem Schema zugeordnet werden können. Ein Schema bedeutet hier nicht einer XSD-Datei. BizTalk erfasst standardmäßig alles als eigenes Schema, was sich in einer XSD-Datei direkt unterhalb des Schema-Knotens befindet (außer Attribute). Das heißt: Gibt es mehrere Root-Knoten in einer XSD-Datei, gibt es auch mehrere Schemas zur Laufzeit. Hier kann steuernd eingegriffen werden. Markiert man den Schema-Knoten, schaut im Properties-Fenster nach der Root Reference kann dort ein bestimmter Root-Knoten ausgewählt werden. Alle anderen Root-Knoten, die sich vielleicht auch in der Datei befinden, werden dann nicht als eigene Schemas erfasst. Vielleicht hilft das in diesem Fall weiter...

    Beste Grüße,
    Martin

    Samstag, 22. Januar 2011 14:55
  • Leider nein..die xsd-Dateien sind Standardwerk der API und so freigegeben. Zum einen möchte ich dort nichts ändern und selbst als ich es versuchte lässt sich das ganze nichtmal mehr kompilieren im Studio
    Sonntag, 23. Januar 2011 10:21
  • Hallo Chris,

    Jeff Lynch (BizTalk MVP) hat sich mit dem Thema PIDX und BizTalk in seinem Blog  befasst. Vielleicht hilft das weiter:

    http://codebetter.com/blogs/jeff.lynch/archive/2008/06/25/pidx-schemas-solution-for-biztalk-server-2006.aspx

    Schöne Grüße

    Oliver

    Dienstag, 25. Januar 2011 13:59
  • Danke für die Info...ich schau es mir mal an
    Freitag, 28. Januar 2011 14:14
  • Hallo Chris,

    ich gehe davon aus, dass Du nur OrderCreate benutzen willst und dies die Typen aus der PIDXLib benötigt. Stelle doch einfach die Kompilieroptionen für das PIDXLib Schema im Projekt aus, damit dieses nicht kompiliert wird, sondern nur für das Kompilieren des OrderCreate zur Verfügung steht.

    Beste Grüße,

    Leo


    Please mark it as Answer if this answers your question.
    Montag, 31. Januar 2011 11:41