繁体   English   中英

如何在 BizTalk 中使用条件将 map 属性列表添加到基于列的模式?

[英]How to map list of attributes to column-based schema with condition in BizTalk?

我有两个模式,一个用于输入 xml 文件,第二个用于数据库表。

请在下面查看上述模式的源数据:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl'?> 
<List>
 <Classification domain="Type">deviceSku</Classification>
 <Classification domain="Color">(PRODUCT)RED</Classification>
 <Classification domain="ColorCode">#D82E2E</Classification>
 <Classification domain="OS">Apple iOS</Classification>
 <Classification domain="ChargeType">One Time Charge</Classification>
 <Classification domain="Capacity">128GB</Classification>
</List>

上面的文件是输入的xml文件,是列表形式的。

请在下面查看表创建脚本,它是 output,它是基于列格式的。

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[cata_class](
    [ID] [int] IDENTITY(1000,1) NOT NULL,
    [classification_type] [varchar](100) NULL,
    [classification_color] [varchar](100) NULL,
    [classification_colorCode] [varchar](50) NULL,
    [classification_os] [varchar](100) NULL,
    [classification_chargetype] [varchar](100) NULL,
    [classification_capacity] [varchar](100) NULL,  
PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) 
GO

在此处输入图像描述

按照上面的SS。 我想根据目标模式中的域条件添加分类值,以便哪个功能是更好的选择以及如何使用 function?

请在下面查看输入模式:

<?xml version="1.0" encoding="utf-16"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="List">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="Classification">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="domain" type="xs:string" use="required" />
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema> 

请在下面查看 output 模式:

 <?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ns3="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:appinfo>
      <fileNameHint xmlns="http://schemas.microsoft.com/servicemodel/adapters/metadata/xsd">Table.dbo</fileNameHint>
    </xs:appinfo>
  </xs:annotation>
  <xs:complexType name="cata_class">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="ID" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" maxOccurs="1" name="classification_type" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="classification_color" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="classification_colorCode" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="classification_os" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="classification_chargetype" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="classification_capacity" nillable="true">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="cata_class" nillable="true" type="ns3:cata_class" />
  <xs:complexType name="ArrayOfcata_class">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="cata_class" type="ns3:cata_class" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfcata_class" nillable="true" type="ns3:ArrayOfcata_class" />
</xs:schema>

我们需要使用 Equal 和 Value 映射(奉承)function 如下 SS:

在此处输入图像描述

在相同的功能上,我们需要通过域来检查条件,如下所示:

在此处输入图像描述

在值映射(讨人喜欢的)函数中,我们需要将相等的函数值作为第一个输入传递,将分类节点作为第二个输入传递,并将 map 传递给目标模式节点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM