Каков наилучший способ представления узлов изображения в XML-схеме продукта (элемента)? - PullRequest
0 голосов
/ 10 ноября 2008

У меня есть XML-схема, которая представляет продукт в БД, и я пытаюсь найти лучший способ сохранить ссылки на изображения продуктов в виде узлов XML. Там будет основное изображение, а затем чередуются изображения, каждое из которых с последовательностями (порядок отображения). Это будет подходящий формат или есть лучшие подходы:

<item>
    <id></id>
    <images>
        <image width="" height="" href="" alt="" sequence="1" />
        <image width="" height="" href="" alt="" sequence="2" />
        <image width="" height="" href="" alt="" sequence="3" />
        <image width="" height="" href="" alt="" sequence="4" />
    </images>
</item>

Очевидно, что будет больше узлов, но я не показываю их все. Я полагал, что мое основное изображение всегда будет первым в последовательности. У меня проблема в том, что каждое из этих изображений будет иметь уменьшенное, среднее и большое изображения, поэтому я думаю, что это нужно разбить дальше.

Ответы [ 2 ]

2 голосов
/ 10 ноября 2008

Поскольку элементы XML имеют естественный порядок (то есть порядок, в котором они появляются в файле XML), возможно, избыточно включать атрибут sequence. Вы все еще можете говорить о порядке элементов, и все еще есть «первый» для основного изображения продукта.

Так что, возможно:

<images>
    <imageset>
        <image size="thumbnail" width="" height="" href="" alt="" />
        <image size="medium" width="" height="" href="" alt="" />
        <image size="large" width="" height="" href="" alt="" />
    </imageset>
    <imageset>
        <image size="thumbnail" width="" height="" href="" alt="" />
        <image size="medium" width="" height="" href="" alt="" />
        <image size="large" width="" height="" href="" alt="" />
    </imageset>
</images>
1 голос
/ 10 ноября 2008

Чтобы немного расширить дизайн Грега: возможно, было бы целесообразно сделать размер изображения именем элемента, а не size атрибутом, т. Е .:

<imageset>
   <thumbnail width=""... />
   <medium width="".../>
   <large width="".../>
</imageset>

Для этого есть две причины.

Во-первых, имя imageset уже говорит вам, что его дочерние элементы будут изображениями, поэтому именование дочерних элементов image является избыточным. Использовать шаблон XPath imageset/* так же просто, как и imageset/image, и немного проще написать imageset/medium, чем imageset/image[@size='medium'].

Более важной причиной является то, что эта схема позволяет вашей схеме указывать, что элемент imageset должен содержать ровно по одному изображению каждого типа. (Или это указывает, что один или несколько типов изображений являются необязательными.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...