2013-04-01 8 views
0

При создании XML-документа с несколькими элементами из информации, отправленной с другого устройства, и, скажем, некоторая информация не была отправлена ​​(например, с информацией о идентификаторе SecFile), лучше ли это получить XML с (a) элементом не существует или (b) пустым элементом или (c) с вставленным элементом или (d) вставлен атрибут xsi: nil = "true"?Пустые элементы - что лучше

Ex Вся информация

<FilmFile_ID> 
<Film_ID>02</Film_ID> 
<PriFile_ID>08</PriFile_ID> 
<SecFile_ID>03</SecFile_ID> 
</FilmFile_ID> 

а) SecFile_ID элемент удален

<FilmFile_ID> 
<Film_ID>02</Film_ID> 
<PriFile_ID>08</PriFile_ID> 
</FilmFile_ID> 

б) SecFile_ID пусто

<FilmFile_ID> 
<Film_ID>02</Film_ID> 
<PriFile_ID>08</PriFile_ID> 
<SecFile_ID></SecFile_ID> 
</FilmFile_ID> 

с) вставляется

<FilmFile_ID> 
<Film_ID>02</Film_ID> 
<PriFile_ID>08</PriFile_ID> 
<SecFile_ID><null/></SecFile_ID> 
</FilmFile_ID> 

d) XSI: ноль =»истина» вставлено

<FilmFile_ID> 
<Film_ID>02</Film_ID> 
<PriFile_ID>08</PriFile_ID> 
<SecFile_ID xsi:nil=”true”/> 
</FilmFile_ID>' 
+0

Все они действительны, нет «лучшего» способа. Это зависит от вашего приложения. –

+0

Я предполагаю, что небольшое преимущество «элемента не там» заключается в том, что ваше XML-сообщение будет немного меньше ... немного ... – code4life

ответ

0

Ну, нет "лучше" способ, но, еще можно было утверждать, что:

  • б) неоднозначна, так как вы не можете знать, если это означает пустой или отсутствующую значение в , и что

  • с) вводит, ненужное усложнение дело с особым типом данных, и что

  • d) передает exacly то же значение, а), но с намного большим количеством многословием, следовательно

  • а) выигрывает

Если вы идете с a), то <SecFile></SecFile> следует интерпретировать как «пустое» значение (но не null), если это допустимо для приложения (или схемы).

0

Как правило, культура XML заключается в том, что вы, как разработчик документа, можете выбрать, какой синтаксис использовать для определенной семантики, или, другими словами, документ означает то, что вы говорите. Если вам нужно различать разные виды отсутствующей ценности (например, «у меня нет среднего имени» из «Я не знаю, как называется Джон»), то различие может быть важным, но в большинстве случаев вы можете использовать любой из них довольно счастливо , Использование пустого элемента может сделать жизнь немного проще для приложений, потребляющих XML.

Смежные вопросы