Création de données au format XML
Vous pouvez créer les données à charger dans votre base de données avec l'utilitaire de chargement de données dans un fichier au format XML. Ce fichier XML doit respecter un format XML spécifique, dont la structure et le contenu sont similaires au format CSV pris en charge pour le chargement des données de catalogue.
Avant de commencer
Pourquoi et quand exécuter cette tâche
Si vous choisissez de créer et d'utiliser un fichier au format XML, vérifiez que votre fichier utilise les noms de colonne CSV comme noms d'élément XML et utilise une structure de fichier de type CSV. Votre fichier doit également spécifier un mot clé pour associer l'objet métier que vous chargez avec un médiateur et des objets individuels séparés d'un type d'objet métier au sein de différents éléments. Vous devez également configurer l'utilitaire pour utiliser le lecteur de données XML au lieu du lecteur de données CSV qui est le lecteur de données par défaut. Pour plus d'informations sur la configuration du lecteur de données XML, voir Configuration du lecteur de données XML.
<?xml version="1.0" encoding="UTF-8"?>
<Catalogs loadItemName="Catalog">
<Catalog Delete="0">
<Identifier>Spring Fashions</Identifier>
<MasterCatalog>FALSE</MasterCatalog>
<Description>Spring Fashions</Description>
<Name>Spring Fashions</Name>
<ShortDescription>Spring Fashions</ShortDescription>
<LongDescription>Fashions for the Spring season</LongDescription>
</Catalog>
<Catalog Delete="0">
<Identifier>Fall Fashions</Identifier>
<MasterCatalog>FALSE</MasterCatalog>
<Description>Fall Fashions</Description>
<Name>Fall Fashions</Name>
<ShortDescription>Fall Fashions</ShortDescription>
<LongDescription>Fashions for the Fall season</LongDescription>
</Catalog>
</Catalogs>- La première ligne de l'exemple précédent identifie le fichier que vous chargez en tant que fichier XML.
- La deuxième ligne est l'élément racine et contient le mot clé qui correspond au type d'objet métier de catalogue à télécharger. Par exemple, vous pouvez spécifier le mot clé
Catalogpour charger un catalogue ou le mot cléCatalogEntrypour charger des entrées de catalogue. Vous devez spécifier le mot clé d'objet métier comme élémentloadItemNameà ce niveau racine. Le mot clé distingue les minuscules des majuscules. - La troisième ligne est un exemple d'élément de deuxième niveau qui identifie les objets qui sont chargés. Par exemple, le code précédent indique qu'un objet de catalogue est en cours de chargement. Identifiez chaque objet que vous chargez dans votre fichier à ce niveau. Par exemple, dans le code précédent, deux objets de catalogue sont chargés, un catalogue Spring Fashions et un catalogue Fall Fashions. Si vous supprimez des objets avec ce fichier, vous pouvez identifier si un objet doit être supprimé à ce niveau. Si la valeur de l'attribut Delete est 1, l'objet de catalogue doit être supprimé. Si la valeur de l'attribut Delete est 0, l'objet de catalogue ne doit pas être supprimé. Si vous ne spécifiez pas de valeur pour l'attribut Delete, la valeur par défaut est 0. Vous pouvez aussi spécifier l'attribut Delete comme élément imbriqué dans l'élément objet.
- Les éléments qui sont imbriqués dans les éléments (objet) de deuxième niveau contiennent des informations sur l'objet. Par exemple, l'objet
IdentifierouShortDescription. Dans ces éléments XML, la valeur correspondante pour l'objet de catalogue qui est chargé doit être incluse. Les noms des éléments d'informations sur l'objet distinguent les minuscules des majuscules et doivent correspondre aux noms de colonne CSV pour le même type d'objet métier. Les éléments doivent être uniques pour chaque objet que vous chargez avec un fichier XML. Par exemple, vous ne pouvez pas inclure deux élémentsShortDescriptionimbriqués dans un objet. Vous pouvez inclure les informations sur un objet que vous chargez en tant qu'éléments XML imbriqués avec l'élément objet, ou en tant qu'attributs dans l'élément objet. Si vous ajoutez vos informations sur l'objet en tant qu'attributs, ces attributs XML doivent être inclus au format suivant :
Où<object attribute="attribute_value">objectest l'objet que vous chargez etattributele nom de l'attribut que vous chargez. Par exemple,<Catalog Identifier="Spring Fashions">
Procédure
- Ouvrez un éditeur XML ou texte.
-
Sur la première ligne de votre fichier, ajoutez le code suivant afin de définir votre fichier comme étant un fichier XML :
<?xml version="1.0" encoding="UTF-8"?> -
Après la ligne qui définit votre fichier comme un fichier XML, spécifiez un élément pour le type d'objet métier sur lequel vous chargez des informations. Vous devez spécifier ce type d'objet dans l'élément racine de votre fichier en spécifiant le mot clé associé à l'objet métier. Dans cet élément, vous devez inclure un nom d'élément qui distingue votre élément racine d'autres éléments figurant dans votre fichier.
Cet élément racine doit être spécifié au format suivant :
Où elementName est le nom distinctif de l'élément racine et keyword est le mot clé utilisé pour identifier le type d'objet métier que vous chargez.<?xml version="1.0" encoding="UTF-8"?> <elementName loadItemName="keyword"> </elementName>Par exemple, l'élément suivant est utilisé pour spécifier qu'un fichier contient des données de catalogue :<?xml version="1.0" encoding="UTF-8"?> <CatalogObjects loadItemName="Catalog"> </CatalogObjects>Remarque : La déclarationloadItemNameest requise dans les fichiers qui sont téléchargés avec le centre de gestion et facultative pour les fichiers qui sont chargés avec l'utilitaire de chargement de données. Il est recommandé de l'inclure. Si vous incluez la déclarationloadItemName, votre fichier peut être chargé avec l'utilitaire de chargement de données et avec le centre de gestion et il n'est pas nécessaire d'ajouter la déclarationloadItemNameultérieurement.Lorsque vous spécifiez un mot clé, sélectionnez l'un des mots clés ci-après. La distinction des minuscules et des majuscules s'applique aux mots clés ; par conséquent, veillez à les saisir exactement tels qu'ils apparaissent dans cette liste :AttachmentAttachmentAssetAttachmentAssetLanguageAttachmentDescriptionAttributeDictionaryAttributeAllowedValuesAttributeDictionaryAttributeAndAllowedValuesAttributeDictionaryAttributeFolderRelationshipCatalogCatalogDescriptionCatalogGroupCatalogGroupAssetCatalogGroupAssociationCatalogGroupAttachmentCatalogGroupCalculationCodeCatalogGroupDescriptionCatalogGroupRelationshipCatalogGroupSEOCatalogEntryCatalogEntryAssetCatalogEntryAssociationCatalogEntryATPInventoryCatalogEntryAttachmentCatalogEntryAttributeDictionaryAttributeRelationshipCatalogEntryCalculationCodeCatalogEntryComponentCatalogEntryDescriptionCatalogEntryDescriptiveAttributeAndValueCatalogEntryDescriptionOverrideCatalogEntryDescriptionUpdateCatalogEntryInventoryCatalogEntryOfferPriceCatalogEntryParentCatalogGroupRelationshipCatalogEntryParentProductRelationshipCatalogEntrySEOCatalogEntryUpdateCatalogFilterCatalogFilterCategoryCatalogFilterCatentryCatalogFilterConditionCatalogFilterConditionGroupListPriceListMarketingActivityMarketingCampaignMarketingContentMarketingContentAttachmentMarketingContentAttachmentDescriptionMarketingContentDescriptionMarketingContentImageMapMarketingElementMarketingElementNVPMarketingSpotMarketingSpotDefaultContentMarketingSpotDefaultTitleMemberGroupMemberGroupConditionMemberGroupDescriptionOfferProductDefiningAttributeAndAllowedValuesSKUDefiningAttributeValue
-
Après la ligne qui définit le type d'objet que vous chargez, spécifiez l'objet que vous chargez. Spécifiez-le dans un élément qui est imbriqué dans votre élément racine.
Par exemple,
<?xml version="1.0" encoding="UTF-8"?> <CatalogObjects loadItemName="Catalog"><Catalog></Catalog></CatalogObjects> -
Ajoutez les informations relatives à l'objet que vous chargez. Vous pouvez ajouter ces informations sous forme d'éléments ou d'attributs dans l'élément qui spécifie l'objet que vous chargez.
Ces attributs ou éléments doivent utiliser le nom d'élément XML spécifique pour l'objet. Ces noms sont identiques aux noms de colonne CSV et la distinction des minuscules et des majuscules est appliquée. Vous devez les entrer exactement tels qu'ils apparaissent dans la rubrique définitions de colonne CSV et d'élément XML correspondante. Si vous ajoutez des informations personnalisées, vous devez entrer les noms d'élément ou d'attribut qui sont définis dans le médiateur correspondant qui mappe les informations à l'emplacement approprié dans le nom d'objet métier.
- Si vous ajoutez les informations sur vos objets dans des éléments XML, imbriquez ces éléments dans l'élément objet que vous avez défini à l'étape précédente. Par exemple :
<Catalog><Identifier>Spring Fashions</Identifier><MasterCatalog>FALSE</MasterCatalog><Description>Spring Fashions</Description><Name>Spring Fashions</Name><ShortDescription>Spring Fashions</ShortDescription><LongDescription>Fashions for the Spring season</LongDescription></Catalog> - Si vous ajoutez vos informations sur l'objet en tant qu'attributs, ces attributs XML doivent être inclus au format suivant :
Où<object attribute="attribute_value">objectest l'objet que vous chargez etattributele nom de l'attribut que vous chargez. Par exemple,<Catalog Identifier="Spring Fashions">
Vous pouvez aussi inclure un élément ou un attribut qui spécifie la valeur de séquence ou de suppression pour l'objet. Par exemple,- Attribut
<CatalogEntry Sequence="1.0" Delete="0"> - Elément
<Delete>0</Delete>
Vous pouvez définir les valeurs de suppression
1ou0. Si vous définissez la valeur1, l'objet est supprimé. Si vous spécifiez la valeur0, ou si vous omettez la valeur, la valeur est0par défaut et aucune suppression n'a lieu.Remarque : Utilisation de valeurs d'élément et d'attribut :Pour plus d'informations, voir Configuration du lecteur de données XML.Vous pouvez utiliser des éléments ou des attributs pour ajouter des données à charger. Généralement, les 2 méthodes de chargement donnent les mêmes résultats. Cependant, le chargement diffère lorsque la valeur est vide.
Par exemple, pour une entrée de catalogue, vous pouvez définir l'élément Name :
Ou vous pouvez utiliser un attribut :<CatalogEntry> <Name>Spring Fashions</Name> </CatalogEntry>
Les deux exemples précédents sont équivalents pour le chargement. Cependant, si la valeur Name est vide, elle est traitée différemment par le gestionnaire XML. Les exemples suivants sont donc traités différemment :<CatalogEntry Name="Spring Fashions"> </CatalogEntry><CatalogEntry> <Name></Name> </CatalogEntry><CatalogEntry Name=""> </CatalogEntry>Par défaut, tous les éléments dont les valeurs sont vides sont considérés comme null. Cependant, les attributs dont les valeurs sont vides sont considérés des valeurs vides. Autrement dit, la valeur est null dans la base de données si vous utilisez un élément pour Name, et elle y est vide si vous utilisez un attribut pour Name. Ce comportement par défaut peut être modifié à l'aide des propriétés de configuration facultatives suivantes.- ignoreEmptyElementText
- Avec la valeur false, les éléments vides sont considérés des valeurs vides. La valeur par défaut est true.
- ignoreEmptyAttributeValue
- Avec la valeur true, les valeurs d'attribut vides sont considérées comme null. La valeur par défaut est false.
<DataReader>, l'élément<LoadItem>ou l'élément<LoadOrder>comme :<_config:property name="ignoreEmptyElementText" value="false" /> - Si vous ajoutez les informations sur vos objets dans des éléments XML, imbriquez ces éléments dans l'élément objet que vous avez défini à l'étape précédente. Par exemple :
- Facultatif :
Répétez les étapes 4 et 5 afin d'ajouter des informations pour d'autres objets dans votre fichier. Chaque objet doit être spécifié dans un élément XML distinct. N'imbriquez pas vos objets profondément. Imbriquez l'élément pour chaque objet que vous incluez directement dans votre élément racine.
Par exemple, pour inclure trois objets de catalogue dans un fichier, le code peut être similaire au suivant :
<CatalogObjects loadItemName="Catalog"> <Catalog> <Identifier>Spring Fashions</Identifier> <MasterCatalog>FALSE</MasterCatalog> <Description>Spring Fashions</Description> <Name>Spring Fashions</Name> <ShortDescription>Spring Fashions</ShortDescription> <LongDescription>Fashions for the Spring season</LongDescription> </Catalog> <Catalog Delete="0"> <Identifier>Summer Fashions</Identifier> <MasterCatalog>FALSE</MasterCatalog> <Description>Summer Fashions</Description> <Name>Spring Fashions</Name> <ShortDescription>Summer Fashions</ShortDescription> <LongDescription>Fashions for the Summer season</LongDescription> </Catalog> <Catalog Delete="0"> <Identifier>Fall Fashions</Identifier> <MasterCatalog>FALSE</MasterCatalog> <Description>Fall Fashions</Description> <Name>Spring Fashions</Name> <ShortDescription>Fall Fashions</ShortDescription> <LongDescription>Fashions for the Fall season</LongDescription> </Catalog> </CatalogObjects> -
Sauvegardez et fermez votre fichier.
Le fichier terminé pourra ressembler à l'exemple de code suivant :
<?xml version="1.0" encoding="UTF-8"?> <CatalogObjects loadItemName="Catalog"> <Catalog> <Identifier>Spring Fashions</Identifier> <MasterCatalog>FALSE</MasterCatalog> <Description>Spring Fashions</Description> <Name>Spring Fashions</Name> <ShortDescription>Spring Fashions</ShortDescription> <LongDescription>Fashions for the Spring season</LongDescription> </Catalog> <Catalog Delete="0"> <Identifier>Summer Fashions</Identifier> <MasterCatalog>FALSE</MasterCatalog> <Description>Summer Fashions</Description> <Name>Spring Fashions</Name> <ShortDescription>Summer Fashions</ShortDescription> <LongDescription>Fashions for the Summer season</LongDescription> </Catalog> <Catalog Delete="0"> <Identifier>Fall Fashions</Identifier> <MasterCatalog>FALSE</MasterCatalog> <Description>Fall Fashions</Description> <Name>Spring Fashions</Name> <ShortDescription>Fall Fashions</ShortDescription> <LongDescription>Fashions for the Fall season</LongDescription> </Catalog> </CatalogObjects>