1

現在、私は単純な XML/RSS フィードで行き詰まっています。RSS のフィールドとしてより多くの「属性」を使用できるようにしたいのですが、どうすればこれを行うことができますか? アイテム内のフィールドの名前は、タイトル、リンク、SKU、価格、およびカテゴリになりました。これは rss w3 バリデータによって受け入れられません。しかし、私は名前空間の概念を理解しているとは思いません。名前空間が必要な場合、またはこの方法でフィードを実行できる場合は?

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Products from Category 1</title>
<link>www.linktoshop.com</link>
<description>Links from a category on my shop</description>
{{block type="product"}}
<item>
    <title>{{var title}}</title>
    <link>{{var link}}</link>
    <sku>{{var sku}}</sku>
    <price>{{var price}}</price>
    <category>{{var category}}</category>
</item>
{{/block}}
</channel>

4

1 に答える 1

1

RSS 要素は名前空間にバインドされていません。名前空間にバインドされていない RSS フィード内のすべての要素は、RSS 要素である必要があります。カスタム要素を RSS フィード アイテムに追加できますが、それらは名前空間にある必要があります。例えば:

<p:sku xmlns:p="urn:rfidic:product:core:ACME:sku">{{var sku}}</p:sku>
<g:price xmlns:g="http://base.google.com/ns/1.0">{{var price}}</g:price>

名前空間は、要素と属性を一意に修飾するのに役立ちます。

ただし、よく知られている語彙を使用しない限り、バリデーターは名前空間が不明であり、データが他のシステムと十分に相互運用できない可能性があるという警告を報告する可能性があります。これらの XML 語彙のいくつかをチェックして、コンテンツが適合するかどうかを確認することをお勧めします。


<category>または、ドメイン属性を持つ要素を使用することもできます:

<category domain="sku">{{var sku}}</category>
<category domain="price">{{var price}}</category>
于 2013-02-14T18:37:18.807 に答える