Это - “плохая практика”, чтобы быть чувствительным к разрывам строки в XML-документах?

Нет, поскольку трехмерная ось является объектом matplotlib.axes._subplots.Axes3DSubplot, а регулярная ось - объектом matplotlib.axes._subplots.AxesSubplot.

Итак, это не только случай изменения одного свойства существующего объекта, так как его совершенно другой объект, который создается, когда вы add_subplot(projection='3d').

Я думаю, что у вас будет для явного создания ваших подсетей, например:

fig=plt.figure()
ax1=fig.add_subplot(2,2,1)
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
ax4=fig.add_subplot(2,2,4,projection='3d')

Или, наоборот, удалите двумерную ось и добавьте ее обратно в 3D-ось:

fig,ax = plt.subplots(nrows = 2, ncols = 2)
ax[1,1].remove()
ax[1,1]=fig.add_subplot(2,2,4,projection='3d')
8
задан Chris 26 September 2008 в 20:20
поделиться

12 ответов

Это обычно полагало, что плохая практика полагается на разрывы строки, так как это - хрупкий способ дифференцировать данные. В то время как большинство процессоров XML сохранит любой пробел, Вы вставляете свой XML, он не гарантируется.

Настоящая проблема состоит в том, что большинство приложений, которые производят Ваш XML в читаемый формат, рассматривает весь пробел в interchangable XML, и могло бы свернуть те разрывы строки в одиночный пробел. Вот почему Ваш XSLT должен перейти через такие обручи для рендеринга данных правильно. Используя "br" тег значительно упростил бы преобразование.

Другая потенциальная проблема состоит в том, что при открытии XML-документа в XML-редакторе и структурной распечатке программы это Вы, вероятно, потеряете те разрывы строки.

Если Вы действительно продолжаете использовать разрывы строки, удостоверьтесь, добавляют, что xml:space = "сохраняет" атрибут для "обращений". (Можно сделать это в DTD при использовании того.)

Некоторое предложенное чтение

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

9
ответ дан 5 December 2019 в 11:29
поделиться

При необходимости в сохраненных разрывах строки используйте блок CDATA, как сказал tweakt

Иначе остерегайтесь. Большую часть времени разрывы строки будут сохранены программным обеспечением XML, но иногда они не будут, и Вы действительно не хотите полагаться на вещи, которые только работают по совпадению

-2
ответ дан 5 December 2019 в 11:29
поделиться

Я рекомендую или добавить <br/> разрывы строки или возможно используют объект разрыва строки - &#x000D;

-1
ответ дан 5 December 2019 в 11:29
поделиться

То, что действительно необходимо делать, преобразовывает XML в формат, который сохраняет пробел.

Так, а не стремятся заменить \n <br/>, необходимо перенести целый блок в <пред>

Тем путем Ваш адрес функционально сохраняется (включаете ли Вы разрывы строки или не), и XSTL может выбрать, сохранить ли пробел в результате.

-1
ответ дан 5 December 2019 в 11:29
поделиться

Я не вижу что случилось с <Line> теги.
По-видимому, визуализация данных важна для Вас, достаточно важна для хранения их в данных (через разрывы строки в первом примере).Отлично. Затем действительно сохраните его, не полагайтесь на "волшебство" сохранить его для Вас. Сохраните каждый бит данных, в которых Вы будете нуждаться позже и не можете вывести отлично из сохраненной части данных, сохранить его, даже если это будут данные визуализации (разрывы строки и другое форматирование). Ваш пользователь (конечный пользователь другого разработчика) не торопился для форматирования тех данных к его симпатии - любой говорит ему (документ API / текст около входа), что Вы не предназначаете при хранении, это, или - просто сохраняет его.

0
ответ дан 5 December 2019 в 11:29
поделиться

Спецификация XML имеет что-то для высказывания относительно пробела и переводов строки и возвратов каретки в частности. Таким образом, при ограничении себя истинными переводами строки (x0A), необходимо быть в порядке. Однако много инструментов редактирования переформатируют XML для "лучшей презентации" и возможно избавятся от специального синтаксиса. Более устойчивый и более чистый подход, чем" <строка> </строка>" идея должен был бы просто использовать пространства имен и встроить содержание XHTML, например:

<Address xmlns="http://www.w3.org/1999/xhtml">15 Sample St<br />Example Bay<br />Some Country</Address>

Никакая потребность изобрести велосипед когда дело доходит до стандартных словарей.

1
ответ дан 5 December 2019 в 11:29
поделиться

Да, я думаю с помощью блока CDATA, защитил бы пробел. Хотя некоторые API синтаксического анализатора позволяют Вам сохранять пробел.

-1
ответ дан 5 December 2019 в 11:29
поделиться

Это зависит от того, как Вы читаете и пишете XML.

Если XML сгенерирован автоматически - если новые строки или явные флаги \n анализируются в
- затем нет ничего для волнения о. Ваш вход, вероятно, не имеет никакого другого XML в нем так, это - просто инструмент для очистки для не питания с XML вообще.

Если теги работаются с вручную, это - все еще инструмент для очистки, чтобы просто иметь разрыв строки, если Вы спрашиваете меня.

Исключение - то, при использовании DOM для вытаскивания некоторой структуры из XML. В этом случае разрывы строки являются очевидно злыми, потому что они не представляют иерархию правильно. Это кажется, что иерархия не важна для Вашего приложения, тем не менее, таким образом, разрывы строки звучат достаточными.

Если XML просто выглядит плохо (особенно, когда автоматически сгенерировано), Опрятный может помочь, хотя он работает лучше с HTML, чем с XML.

1
ответ дан 5 December 2019 в 11:29
поделиться

Что относительно того, чтобы использовать атрибуты, чтобы хранить данные, а не текстовые узлы:

<Address Street="15 Sample St" City="Example Bay" State="" Country="Some Country"/>

Я знаю, что использование атрибутов по сравнению с текстовыми узлами является часто обсуждаемым предметом, но я продолжил работать с атрибутами 95% времени и не испытал затруднений из-за него.

3
ответ дан 5 December 2019 в 11:29
поделиться

Немного людей сказали, что блоки CDATA позволят Вам сохранять разрывы строки. Это неправильно. Разделы CDATA только заставят разметку быть обработанной как символьные данные, они не изменят обработку разрыва строки.

<Address>15 Sample St
Example Bay
Some Country</Address>

точно то же как

<Address><![CDATA[15 Sample St
Example Bay
Some Country]]></Address>

Единственная разница - то, как различные API сообщают об этом.

3
ответ дан 5 December 2019 в 11:29
поделиться

Я думаю, что единственная настоящая проблема состоит в том, что это делает XML тяжелее для чтения. например.

<Something>
    <Contains>
        <An>
            <Address>15 Sample St
Example Bay
Some Country</Address>
        </An>
    </Contains>
</Something>

Если бы симпатичный XML не является беспокойством, я, вероятно, не волновался бы об этом, пока это работает. Если бы симпатичный XML является беспокойством, я преобразовал бы явные новые строки в <br /> теги или \n прежде, чем встроить их в XML.

2
ответ дан 5 December 2019 в 11:29
поделиться

Это - вероятно, немного обманчивый пример, так как адрес немного не нормализован в этом случае. Это - разумный компромисс, однако так как поля адреса трудно нормализовать. Если Вы заставляете разрывы строки содержать важную информацию, Вы не нормализуете и заставляете почтовое отделение интерпретировать значение разрыва строки.

Я сказал бы, что обычно это не большая проблема, но в этом случае я думаю, что тег Строки является самым корректным, так как он явно показывает, что Вы на самом деле не интерпретируете то, что строки могут означать в различных культурах. (Помните, что большинство форм для ввода адреса имеет почтовый индекс и т.д. и строку адреса 1 и 2.)

Неловкость наличия тега строки идет с нормальным XML и была очень обсуждена при кодировании ужаса. http://www.codinghorror.com/blog/archives/001139.html

1
ответ дан 5 December 2019 в 11:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: