2015-05-18 7 views
0

Я пытаюсь достичь сценария, в котором я уверен, что элемент получается на выходе, даже если его нет во входе.Проблема с сопоставлением в Altova Mapforce

Например: Если мой вклад

<?xml version="1.0" encoding="UTF-8"?> 
<getMyClsScheduleResponse> 
    <RegisteredClass> 
     <ClassNumber>30788</ClassNumber> 
    </RegisteredClass> 
    <RegisteredClass> 
     <ClassNumber>30524</ClassNumber> 
     <Instructor> 
      <InstructorName>Bernstein,Dennis S</InstructorName> 
      <LastName>Bernstein</LastName> 
      <FirstName>Dennis</FirstName> 
      <Uniqname>DSBAERO</Uniqname> 
      <InstructorRole>Primary Instructor</InstructorRole> 
     </Instructor> 
    </RegisteredClass> 
    <RegisteredClass> 
     <ClassNumber>11786</ClassNumber> 
     <Instructor> 
      <InstructorName>Gluskich,Kari E</InstructorName> 
      <LastName>Gluskich</LastName> 
      <FirstName>Kari</FirstName> 
      <Uniqname>KARI</Uniqname> 
      <InstructorRole>Secondary Instructor</InstructorRole> 
     </Instructor> 
     <Instructor> 
      <InstructorName>Grocech,Marian Renee</InstructorName> 
      <LastName>Grocech</LastName> 
      <FirstName>Marian</FirstName> 
      <Uniqname>MARIANGR</Uniqname> 
      <InstructorRole>Primary Instructor</InstructorRole> 
     </Instructor> 
    </RegisteredClass> 
</getMyClsScheduleResponse> 

Я ожидаю выход

<?xml version="1.0" encoding="UTF-8"?> 
<getMyClsScheduleResponse> 
    <RegisteredClasses> 
     <Title>30788</Title> 
     <Instructor/> 
    </RegisteredClasses> 
    <RegisteredClasses> 
     <Title>30524</Title> 
     <Instructor> 
      <Name>Bernstein,Dennis S</Name> 
      <Role>Primary Instructor</Role> 
      <Email>DSBAERO</Email> 
     </Instructor> 
    </RegisteredClasses> 
    <RegisteredClasses> 
     <Title>11786</Title> 
     <Instructor> 
      <Name>Gluskich,Kari E</Name> 
      <Role>Secondary Instructor</Role> 
      <Email>KARI</Email> 
     </Instructor> 
     <Instructor> 
      <Name>Grocech,Marian Renee</Name> 
      <Role>Primary Instructor</Role> 
      <Email>MARIANGR</Email> 
     </Instructor> 
    </RegisteredClasses> 
</getMyClsScheduleResponse> 

Я пытаюсь добиться этого с помощью Altova MapForce. Я использовал функции и не существует, но не приносит мне благоприятных результатов.

Пожалуйста, см отображение Mapping using exists function

Но результаты не являются, как и ожидалось.

<?xml version="1.0" encoding="UTF-8"?> 
<getMyClsScheduleResponse > 
    <RegisteredClasses> 
     <Title>30788</Title> 
     <Instructor/> 
    </RegisteredClasses> 
    <RegisteredClasses> 
     <Title>30524</Title> 
     <Instructor> 
      <Name>Bernstein,Dennis S</Name> 
      <Role>Primary Instructor</Role> 
      <Email>DSBAERO</Email> 
     </Instructor> 
    </RegisteredClasses> 
    <RegisteredClasses> 
     <Title>11786</Title> 
     <Instructor> 
      <Name>Gluskich,Kari E</Name> 
      <Name>Grocech,Marian Renee</Name> 
      <Role>Secondary Instructor</Role> 
      <Role>Primary Instructor</Role> 
      <Email>KARI</Email> 
      <Email>MARIANGR</Email> 
     </Instructor> 
    </RegisteredClasses> 
</getMyClsScheduleResponse> 

Может кто-нибудь, пожалуйста, помогите мне с картографированием?

Благодаря Kranthi

+0

Вы пробовали соединительный узел инструктор источника непосредственно к узлу выходного Instructor (без использования каких-либо функций)? –

ответ

0

У меня было что-то подобное произойдет. Пока я не найду лучший способ, вот пользовательская функция, которую я использую, чтобы заставить поток выводить пустой узел, если входное значение пуст. Подключите вывод узла к узлу Instructor и код, выводимый на ваше значение. Если нужно, вы можете заменить вывод кода сложным типом.

example