У меня есть две схемы: одна для входного 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, который находится в форме списка.
Ниже приведены сценарии создания таблиц, которые выводятся в зависимости от формата столбца.
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
Согласно вышеуказанному СС. Я хочу добавить значение классификации на основе состояния домена в схеме назначения, поэтому какая функция лучше и как использовать эту функцию?
Ниже приведена схема ввода:
<?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>
Ниже приведена схема вывода:
<?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>
@Dijkgraaf Пожалуйста, посмотрите изменения, у вас будет как схема SS, так и образец XML-файла, пожалуйста, отдайте предпочтение первому SS вопроса.
Фактические схемы в текстовом формате, отформатированные как блоки кода с ``` вокруг них, а не скриншоты.
@Dijkgraaf Я заменяю все ss файлом кода.





Нам нужно использовать функцию сопоставления Equal и Value (лестную) в соответствии с приведенным ниже SS:
При равной функциональности нам нужно передать домен для проверки условия, как показано ниже:
и в функции сопоставления значений (льстивости) нам нужно передать равное значение функции в качестве первого входа и узла классификации в качестве второго входа и сопоставить его с узлом схемы назначения.
Предоставьте входную схему, выходную схему, образец XML-файла и то, что вы пробовали до сих пор. Намекать. Вероятно, вам нужен циклический функтоид, равный функтоид и функтоид отображения значений.