2015-07-21 5 views
1

Я пытаюсь преобразовать следующий XML в другой формат XML. Я скопировал XSLT-файл, который я использую для преобразования, однако я получаю неверную ошибку схемы.XSLT transform -AIF Dynamics AX

<?xml version="1.0" encoding="utf-8" ?> 
<?xml-stylesheet type="text/xsl" href="InternalVendGroup.xslt"?> 
<ns0:VendorGroup xmlns:ns0="http://InternalVendorGroup"> 
    <Header> 
    <Fld1>VendGroup1</Fld1> 
    <Fld2>VendGroup Description</Fld2> 
    <MessageId>{5FC77A8F-67D2-4BF1-A671-FF5A81EF0DDC}</MessageId> 
    </Header> 
</ns0:VendorGroup> 

XSLT трансформации кода:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:InternalSO="http://InternalVendGroup"> 
    <xsl:template match="InternalSO:AxdVendGroup"> 
    <Envelope xmlns="http://schemas.microsoft.com/dynamics/2011/01/documents/Message"> 
     <Header> 
     <MessageId> 
      <xsl:value-of select="Header/MessageId"/> 
     </MessageId> 
     <Action>http://schemas.microsoft.com/dynamics/2008/01/services/VendVendGroupService/create</Action> 
     </Header> 
     <Body> 
     <MessageParts> 
      <AxdVendGroup xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/VendGroup"> 
      <VendGroup class="entity"> 
       <VendGroup> 
       <xsl:value-of select="Header/Fld1"/> 
       </VendGroup> 
       <Name> 
       <xsl:value-of select="Header/Fld2" /> 
       </Name> 
      </VendGroup> 
      </AxdVendGroup> 
     </MessageParts> 
     </Body> 
    </Envelope> 
    </xsl:template> 
</xsl:stylesheet> 

После трансформации я получаю следующее, что не желаемый результат.

<?xml version="1.0" encoding="utf-8"?> 



    VendGroup1 

    VendGroup Description 

    {5FC77A8F-67D2-4BF1-A671-FF5A81EF0DDC} 

Почему все теги отсутствуют во время преобразования ??

+0

Почему все теги отсутствуют во время преобразования? – Gainster

+0

Это ваш вопрос? Если да, отредактируйте свой пост. Или, если это не ваш вопрос, добавьте вопрос в свой пост. –

ответ

3

Почему все теги отсутствуют во время преобразования?

Потому что ваш шаблон ничего не соответствует.

<xsl:template match="InternalSO:AxdVendGroup"> 

Это ничего не соответствует, потому что:

  1. Там нет элемента с именем AxdVendGroup в вашем XML; правильное имя: VendorGroup;
  2. Вы связали префикс InternalSO: с номером "http://InternalVendGroup"; но пространство имен, используемое , вводит ваш XML-вход: "http://InternalVendorGroup".

Попробуйте вместо этого:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:InternalSO="http://InternalVendorGroup"> 

<xsl:template match="InternalSO:VendorGroup"> 
    <!-- the rest of your template --> 
</xsl:template> 

</xsl:stylesheet> 

РИСКОВАННАЯ: я не изучал реальное содержимое шаблона.

+0

Я изменил его, но все еще не хорошо ...

http: //schemas.mic – Gainster

+0

@Gainster Что это должно означать? –

+0

Это мой первый xslt, я действительно буду полезен, если вы покажете фрагмент кода. – Gainster

Смежные вопросы