Hydratool.ru

Журнал "ГидраТул"
31 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Это; bad; для хранения XML в базе данных

Это "bad" для хранения XML в базе данных?

Я слышал из нескольких источников, что хранение XML в базе данных-это «bad», но я никогда не видел/не слышал реального объяснения того, почему это так. Это правда? Если это правда, можете ли вы объяснить, почему? Более того, не могли бы вы сказать мне, что такое «good» случай хранения XML в базе данных?

7 ответов

  • Рекомендуемое место для хранения документов — в базе данных или в другом месте?

Фон : У нас есть собственная система хранения документов, которая была внедрена уже давно. По какой-то причине было выбрано использование базы данных в качестве механизма хранения документов. Мой вопрос таков : Какова наилучшая практика хранения документов? Каковы альтернативы? Каковы плюсы и.

Меня попросили создать искусственный блог, используя довольно закрытую систему управления контентом. У меня нет возможности использовать базы данных для хранения контента, поэтому я играл с возможностью использовать XML для хранения данных о статьях; основные вещи, такие как дата, название.

Здесь есть несколько действительно глупых ответов — просто потому, что база данных поддерживает тип данных, не означает, что вы должны его использовать. Эти вещи неизменно добавляются в качестве функций, потому что они есть у конкурентов, а не потому, что это правильно. Глобальные переменные? Триггеры? Кто-нибудь хотел бы защитить их тоже только потому, что вы можете их использовать, и они там?

Если у вас есть несколько атрибутов, лучший способ обработать их в реляционной базе данных-использовать отношение «один ко многим». Проанализируйте свои полезные данные из накладных расходов XML. Затем вы просто сохраняете ID (первичный ключ) родительской записи с каждой строкой, хранящейся во второй таблице, по одной строке на атрибут. У вас может быть любое количество атрибутов для каждой родительской записи. Это дизайн базы данных 101, ничего умного. Хранить его как неструктурированный XML просто для хранения переменного количества атрибутов-это не путь, это кувалда, чтобы расколоть арахис. Отношение «один ко многим» между двумя таблицами проще, проще для понимания, намного быстрее для запросов, гораздо меньше усилий для кодирования и меньше памяти (что означает более быстрые запросы). Выигрывают все, кроме поставщиков хранилищ.

XML — это протокол передачи данных ; как справедливо сказал GolezTrol, «It is a way to export (and import) data»-то есть: это просто накладные расходы, используемые для облегчения передачи структуры данных между различными системами. После получения теги должны быть удалены, а данные (и только данные) сохранены в выбранном вами ядре базы данных, независимо от того, что это может быть. Не сам XML. Накладные расходы для XML равны

10x данным, которые он описывает. Хотите рассказать своему боссу, почему эти 100 ГБ данных занимают 1 ТБ места на вашем гипердорогом SAN? Или требуется вся ночь, чтобы создать резервную копию по насыщенному сетевому каналу? Или вызывает проблемы с производительностью в производстве? Если вы не проанализируете данные из теперь бессмысленных тегов, вы просто перенесете проблему и текущие ежедневные расходы на поддержку на операционную поддержку в течение следующих десяти лет. Небрежно, небрежно, небрежно. Это удерживает таких поставщиков, как EMC, в бизнесе.

XML-это метаданные. Ничего умного, просто дескриптор схемы. Как только он передается и анализируется, он теряет свою полезность и становится просто беспорядком, который засоряет любую базу данных, которую вы используете. Избавьтесь от него, если только вы не пристрастились к вчерашним бессмысленным дрянным метаданным описания, хранящимся много раз. Просыпаться. Это типичный синдром «Emperor’s New Clothes», перестал быть обманутым чем-то простым и одноразовым. Это всего лишь метаданные, и их не следует хранить или поклоняться, это мусор, как только он будет проанализирован. А что может быть лучше? Разобрать его один раз или бесполезно разбирать каждый раз , когда вам нужны данные из него? Ответ для меня чертовски очевиден.

  • Использование файлов XML для хранения данных

Если я собираюсь использовать файл XML для хранения некоторой информации, нужен ли мне парсер XML для чтения/записи данных? Могу ли я просто использовать функции манипуляции строками, А почему бы и нет?

Я использую oracle 10gR2. У меня есть пример использования, когда по куску нагрузки данные должны быть зафиксированы в базе данных, но они VIEW в целом. Поэтому я думаю о создании XML для хранения всех данных подряд. Должен ли я использовать CLOB или BLOB? Могу ли я узнать, какой тип строки я.

Это совсем не плохо. Microsoft SQL Server имеет тип данных XML. Один из вариантов использования для хранения XML-это ситуация, в которой мы оказались. Для каждой строки в определенной таблице нам нужно было хранить переменное количество атрибутов, связанных с этой строкой. И количество этих атрибутов может меняться с течением времени и с каждой строкой. Мы сочли более эффективным хранить эти атрибуты и их значения в формате XML. В будущем каждый раз, когда мы будем корректировать количество атрибутов, нам не нужно будет вносить изменения в схему.

Читайте так же:
Как правильно хранить никель кадмиевый аккумулятор шуруповерта

Хранение XML, JSON, YAML, списков, разделенных запятыми, двоичных двоичных объектов или чего-либо еще в базе данных само по себе неплохо . .

Это может указывать на непонимание того , для чего предназначена база данных (хранение данных , связанных с другими данными), и вызывает в воображении представления о базах данных с таблицами с одним столбцом, называемыми data1 , data2 и т. Д. . В каждой строке таблицы содержится запись +5 MB XML закодированных реляционных данных.

С другой стороны, есть много допустимых случаев, которые могут быть сделаны для такой структуры-быстро меняющиеся конфигурации могут быть представлены в JSON и сохранены в таблице с двумя столбцами, структурированной следующим образом:

Разница между приведенной выше таблицей и таблицей, подобной этой:

Заключается в том, что good_table обеспечивает быстрый доступ к фрагменту данных (конфигурации), в то время как bad_table использует базу данных в качестве часто дорогого (и медленного) жесткого диска.

XML сам по себе является своего рода форматом хранения. Он наиболее практично используется для транспортировки данных, поскольку обеспечивает общий механизм структурирования данных. Существуют фиксированные правила для чтения и записи XML, которые позволяют читать данные XML любому человеку. Кроме того, проверка и преобразование в другие форматы вывода относительно просты (с использованием xslt). XML, однако, не лучший способ хранения данных. Чтение файлов XML занимает много времени, и они занимают относительно много места. Лучше всего хранить ваши данные структурированным образом в базе данных и экспортировать данные из определенных запросов в XML, если они нужны вам в отчетах, на веб-сайте или для передачи другим сторонам.

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

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

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

OBIEE 11g Bad Xml Instance! Error While Trying To Save A Customization (Doc ID 2063088.1)

Facing a Bad xml instance error, while trying to save a customization in one of the reports. But this error comes only when customer moves a row format to column format by right clicking on the value and choosing the option move to column. Following error is also seen in the last line of error message :

» Line:2, Col:1538, Datatype error: Type:InvalidDatatypeValueException, Message:Value ‘NaN’ does not match regular expression facet ‘[+-]?[0-9]+’.»

The current xml is invalid with the following errors:
Bad xml instance!

<?xml version=»1.0″?> <sawsel:dashboardSelections xmlns_saw=»com.siebel.analytics.web/report/v1.1″ xmlns_sawsel=»com.siebel.analytics.web/dashselections/v1″ xmlns_sawst=»com.siebel.analytics.web/state/v1″ xmlns_sawx=»com.siebel.analytics.web/expression/v1.1″ xmlns:xsi http://www.w3.org/2001/XMLSchema-instance%22″ title=»Click (or CTRL+Click if using Firefox) to view» name=»contextTextUrl_1444066114463″ target=»_blank»> http://www.w3.org/2001/XMLSchema-instance» version=»0.7″><sawst:envState xmlVersion=»200811100″><sawst:container cid=»d:dashboard» xsi_type=»sawst:topLevelStateContainer»><sawst:container cid=»f:dpstate» xsi_type=»sawst:dashpromptstate» statepoolId=»u6dv0lo09ib3j79llrs5tenauu»><sawst:container cid=»f:dpstate» xsi_type=»sawst:dashpromptstate» statepoolId=»t3ahcdv0o9pktln1m1ipov7lfe»/></sawst:container><sawst:container cid=»p:dld45dojvmcm0bbb» xsi_type=»sawst:page»><sawst:container cid=»s:m6f6njrpro64loln» xsi_type=»sawst:section»><sawst:container cid=»g:tapetfs5ae9og54f» xsi_type=»sawst:dashprompt» links=»-«/></sawst:container><sawst:container cid=»r:n8j24s968ni9mtcc» xsi_type=»sawst:report» links=»mfrd» defaultView=»compoundView!3″ searchId=»qn04u2l317fle6f31tq7nsdngu» folder=»/shared/gCore Financials/General Ledger/Reports» itemName=»GL6.2 GL Balance Trend» preDrillState=»rn3o09insb1sqiuvpq5t4p4km6″ previousState=»4s2ucbi3v48msr3udc9pga2lte» hasDrillState=»true»><sawst:container cid=»v:compoundView!3″ xsi_type=»sawst:view»><sawst:container cid=»v:viewSelector!1″ xsi_type=»sawst:view» selectedView=»pivotTableView!1″><sawst:container cid=»v:pivotTableView!1″ clientRowStart=»0″ clientRowEnd=»NaN» clientColStart=»0″ clientColEnd=»NaN» xsi_type=»sawst:view» startPage=»0″/></sawst:container></sawst:container></sawst:container><sawst:container cid=»f:dpstate» xsi_type=»sawst:dashpromptstate» statepoolId=»623md7h6bv7gljgqpqvl6g473i»/><sawst:container cid=»s:joeopevvl8eiqfs9″ xsi_type=»sawst:section»><sawst:container cid=»n:condition» xsi_type=»sawst:navigation» conditionId=»1269266″ conditionEvalStatus=»complete» conditionMet=»true»><sawst:container cid=»r:navReport» xsi_type=»sawst:navReport» links=»b» defaultView=»compoundView!1″ folder=»/shared/gCore Financials/General Ledger/Reports» itemName=»Currency Check — GL Trend»/></sawst:container></sawst:container><sawst:container cid=»s:o9cbv3s3mp5h9dgp» xsi_type=»sawst:section»><sawst:container cid=»n:condition» xsi_type=»sawst:navigation» conditionId=»1269266″ conditionEvalStatus=»complete» conditionMet=»false»><sawst:container cid=»r:navReport» xsi_type=»sawst:navReport» links=»b» defaultView=»compoundView!1″ folder=»/shared/gCore Financials/General Ledger/Reports» itemName=»Currency Check — GL Trend»/></sawst:container></sawst:container><sawst:container cid=»s:matujnpgulben5ve» xsi_type=»sawst:section»/></sawst:container></sawst:container></sawst:envState><sawsel:xmlStatesReferredTo><sawsel:ref refId=»u6dv0lo09ib3j79llrs5tenauu»><sawsel:appliedStates><sawsel:filter><sawx:expr xsi_type=»sawx:logical» op=»and»><sawx:expr xsi_type=»sawx:list» op=»in» promptPrimarySubjectArea=»&quot;gCore Financials — GL Balances&quot;»

Steps are following :
1. Generate a report with certain filter values.
2. Move row format to column format for one attribute .
3. Then try to save it, and it throws error.

Читайте так же:
Как варить нержавейку электродом видео

Cause

To view full details, sign in with your My Oracle Support account.

Don’t have a My Oracle Support account? Click to get started!

In this Document

Symptoms
Cause
Solution
References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.

Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit oracle.com. � Oracle | Contact and Chat | Support | Communities | Connect with us | Facebook | Twitter | Linked In | Legal Notices | Terms of Use

In defense of XML

When I started my career, XML was ubiquitous. The meta-information in a Java JAR file — the manifest — follows a proprietary format. But Java EE designers built it from the ground up on XML: meta-information of all artifacts is in XML format e.g. web.xml , ejb-jar.xml , application.xml , etc.

Java EE is one example I experienced personally. But XML was everywhere in the enterprise world at the time. Its prevalence manifested itself in two areas: configuration and data transfer.

Ever since then, it would be an euphemism to say XML has been losing in popularity. Other formats, such as JSON and YAML, have replaced it in the hearts of developers. In this post, I’d like to:

  • Explore some of the reasons why the mighty XML has fallen
  • Raise some downsides of the popular alternatives
  • And describe how XML already solved those problems

The downfall of XML

I think there are several reasons that led to the downfall of XML. It’s not a single one, but the conjunction of them that led to the current state.

Associated with «Enterprise»

I’m afraid the worst flaw of XML is its close association with the enterprise world. As everybody knows, Enterprise is notoriously bad — by definition: bloated, heavy, not nimble, etc. And yes, that’s sarcasm if you wondered.

In general, perception trumps truth. Developers are no different in that regard. In the end, that’s how Hype-Driven Developers — and most developers, perceive XML nowadays.

Lack of integration with front-end

One of the main usages of XML was in the realm SOAP web services. Let’s be frank about it: the ease of consuming those web services from JavaScript and/or the browser is not spectacular.

It’ no wonder that JavaScript Object Notation, aka JSON became a de facto standard. JSON brought REST along with it. As its name implies, JSON is JavaScript native, while XML is not.

Steep first steps

JSON is quite easy to start with, YAML even more so. Even with bare XML, one has the concept of namespaces, which are not beginner-friendly. XML allows one document to use elements from different namespaces. On the flip side, it makes designing simple documents more complicated.

XML has a lot of powerful features, but all this power can be confusing to beginners. I willingly admit that they make easy things more complex than they should.

Performance

I’ve stumbled upon the performance «argument» a couple of time. This is usually «proven» by using a sample describing the same in XML, JSON and YAML. Because of its opening and closing tags, the writer shows that XML is quite noisy compared to the other two.

IMHO, this argument is shallow, as all 3 formats are text-based. Thus, you can — and should — compress files. Parsing might be a bit slower, but it depends a lot on the exact parser (and the associated technology stack). In the end, the overhead of transmitting and parsing in XML — if any — is negligible compared to the total time in the whole use-case.

People who favor YAML over JSON use the same reasoning: less characters.

Abuse

The above reasons are more or less congruent with XML. Yet, I’m more than willing to admit architects have been abusing XML. I’ve personally seen SOAP webservices with payload in the order of several megabytes. At that time, you might imagine the performance of such design was not stellar.

Failings of alternatives

JSON, YAML & al. all have their own failings. Here’s a sample of them:

  • JSON has no comments. The most usual fallback is to use the «_comment» property.

Anyone who uses YAML long enough will eventually get burned when attempting to abbreviate Norway.

YAML is to config syntaxes what Python is to programming languages. Seriously, significant whitespaces?

Have fun with a 500 lines of YAML to configure your Kubernetes deployment, and come back to explain why *you* hate it.

Читайте так же:
Как сделать из крота мотоблок

— Nicolas Frankel (@nicolas_frankel) June 19, 2020

To cope with the above, other formats have poped-up:

  • TOML draws its inspiration from the .ini format. It allows nested hierarchies of properties
  • Lightbend pushes the HOCON format:

This is an informal spec, but hopefully it’s clear.

This one statement doesn’t fill me confidence.

The original sin: the lack of grammar

Whatever the format, regardless of their own specific downsides, one of the most important issue is for clients to decide if the read data is correct or not.

When using JSON and YAML, the different clients need to provide ad hoc validation. Issues arise when the provider changes the data format:

  1. How to make clients aware that the format changed?
  2. What information to communicate to the client about the format change?
  3. How to keep validation synchronized across clients?

XML has this issue solved since the beginning by providing a grammar. A grammar plays the same role for a XML document as constraints and types in a SQL database. The most important difference is that you can externalize the grammar.

Several XML grammar implementations are available: Document Type Definition, XML Schema, Relax NG, etc. The most widespread one is XML Schema. Since a XML Schema is also written in XML format, a web server can host it. Then you can reference it by a publicly-accessible URL.

This approach solves the above issues: when a client receives an XML document, the former looks at the XML Schema URL. It can then fetch it, and check that the data conforms to the schema.

Changing the data format is as simple as versioning the XML Schema file, and publishing it under a new URL.

Other benefits of XML

In this section, I’d like to list a couple of benefits of using XML.

XML is not under the stewardship of a single person or a company, but of a NGO , namely the W3C. A W3C specification has a publicly documented process and defined lifecycle.

XML is not hype, but benefits from plenty of documentation, blog posts, and FAQs available

While XML doesn’t strictly enforces namespaces, it’s considered a good practice. This way, similarly-named entities defined in different namespaces can co-exist in the same document without confusion about semantics.

XML parsing comes into two flavors:

  1. Tree-based parsing i.e.Document Object Model. It loads the whole document in memory
  2. Event-based parsing i.e.Simple API for XML. It makes possible the parsing of large documents. Note that SAX is not a W3C specification.

Every commonly-used language in the industry offers at least one XML parsing implementation. This is either baked in the standard library that comes along the language, or available in a third-party one. Here are a couple of them:

Wrapper around libxml2

Wrapper around libxml2

Wrapper around libxml

Wrapper around libexpat

XSLT is a W3C specification. It allows to transform one XML document into another document in a declarative way. Target documents can be either XML themselves, or not.

XPath is another W3C specification. It defines how to query XML documents, similar to CSS selectors.

Conclusion

XML has a lot of advantages compared to other more alternative technologies. In addition to what I described above, it benefits from a rich ecosystem.

It’s not considered hype by a lot of young (and not so young) developers. I believe would be beneficial if our industry would value more battle-proven technologies than new shiny ones.

To go further:

Nicolas Fränkel

Nicolas Fränkel

Developer Advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with focused interests like Rich Internet Applications, Testing, CI/CD and DevOps. Currently working for Hazelcast. Also double as a trainer and triples as a book author.

On learning a new programming language

When I started my career, books with titles such as ‘Teach Yourself C in 21 Days’, and ‘Learn Java in 7 Days’ were pretty popular. I was impressed that people could read such books. I never thought I could learn a new language in such a small amount of time myself. Time has passed. I’ve come to realize that I’m not alone in that case. Those books just happen to stretch the definition of learning a new programming language — and I’m being polite. In this post, I’d like to d

Читайте так же:
Бритва электрическая мужская отзывы

Nicolas Fränkel

Customizing your GitHub profile — Building

In the previous post, we had a look on how to write a Kotlin script to automatically write a README that dynamically aggregates various data sources. In this follow-up post, we will describe how to run this script through the use of GitHub Actions. Yet another Continuous Integration tool It has been some time since Hudson, now known as Jenkins, was the leading (only?) Continuous Integration server available on the market. The last years has seen an precambrian explosion of alternatives: Atlas

Nicolas Fränkel

Understanding schema errors

The schema describes the structure of the XML document (number of elements, whether an element can be empty, default/fixed values, etc.) and valid entries. The schema is defined by the XSD. Schema errors occur where there is a problem with the structure or order of the file, or an invalid character is included.

Schema errors prevent the validation being run in full because the file cannot be read. This means that errors cannot be traced to a particular record. Instead the position of the error in the file is given in the form of a line number in the file to assist you in identifying the problem.

Tip: Using a text editor programme to open the raw data will show the line numbers.

Understanding schema errors

The language used to describe a schema error can be difficult to understand at first glance. In order to assist you in identifying and rectifying any errors, a glossary of terms is included below.

Expression

Meaning

The schema describes the structure of the XML document (number of elements, whether an element can be empty, default/fixed values, etc.) and valid entries. The schema is defined by the XSD.

A single entity name groups together a set of fields which have the same relationship.

A field is an attribute (data item) of an entity. This refers to the short field name as shown in the coding manual.

Reason for null

Used to describe a field requiring an explanation for a null value. It must be accompanied by a reason code, for example. 2: not sought, 3: refused or 9: not applicable.

XML is made up of elements. Entities are known as the ‘parent elements’.

XML is made up of elements. Fields are known as ‘child elements’ as they belong to a ‘parent element’ (i.e. entity).

Elements (fields and entities) can belong to one each other and thus are nested.

Worked examples of schema errors for the DLHE record

1) Invalid values

In these examples the error message states that the value returned is invalid. This means that it does not conform to the valid entries included in the field descriptions.

Schema errors - image 1

Where the value is referenced as » this means that the value is missing and the file therefore contains an empty field. Within the file this would look like:

The XML structure does not allow for blank values and so each field in the file must contain a valid code. If the value is missing you will need to input the appropriate value. If however a value cannot be identified and the field is not required for the record, you should remove the field from the file altogether.

Tip: The minimum and maximum occurrences detailed in the field detail in the coding manual will inform you whether or not a field can be excluded from the record.

Schema errors - image 2

In this version of the error message there has been a code returned, however it does not conform to the schema and is invalid. Schema checks ensure that the code returned is as included in the list of valid entries for the field as can be found in the coding manual. If you encounter this error message you must review and amend the data submitted.

2) Invalid child elements

Within the schema a parent element refers to the entity, or group of fields, and a child element refers to an individual field. For example, in the DLHE record ‘Employment’ is an entity and therefore a parent element, whereas the ‘SALARY’ field is a child element.

Where the error message refers to an invalid child element it means that the fields within an entity in the file are not in the correct order as defined by the schema (XSD). This could mean that a field is missing altogether, or that existing fields are not in the correct place. The error message will give you some indication of the problem. In the example below the issue is in line 11 of the file and relates to the Employment entity. In this example, SALARY is the unexpected field as validation was expecting the EMPBASIS field. To resolve the issue you would need to review the raw data file and look at the fields in this entity and make any necessary changes before resubmitting. The schema tree diagram may assist you in identifying the correct order and consequently rectifying the issue with the file.

Читайте так же:
Ленточная шлифмашина из болгарки своими руками

Schema errors - image 3

The raw data contains:

Looking at the schema for this collection, it can be seen that the following fields are in the wrong order:

If XML is so bad. why do so many people use it? [closed]

Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.

Closed 7 years ago .

I understand the purpose of XML, but I always hear people complain about how BAD it is? I don’t really understand whats so bad about it? I usually hear the terms «bloated» and «slow» tossed around.

But I guess as programmers, what do you mainly use it for? And do you really consider it «bad». because if it is, an awful lot of people use it for transporting of data.

12 Answers 12

Xml is great for what it was designed to be — a platform neutral, human readable data transfer protocol with some capabilities to enforce data validation at low levels. I doubt anyone who uses Xml in this manner has a real complaint. Is it the most succint wire format? No. But there are worse options. Is it as fast as reading your custom binary format? No. But your business partners can read it in whatever stack they are using.

The problem, however, is that humans — especially the breed known as enterprise architects — are evil and take good things and make them bad. In the case of Xml, the early part of this century saw Xml as the universal hammer for every IT problem. Sprinkle in a little design by committee and you end up with some horrible monstrosities like SOAP and oXML. Neither of which should be wished on enemies, nevermind friends or colleagues.

XML is just a tool that comes in many flavors and uses. XML excels at some things and sucks at others. I think one of the problems is that people have seen «enterprise» XML that is needlessly complex with namespaces and crap strewn around (SOAP, anyone?). The trick to designing XML formats for humans is adding real meaning to data while not making them overwhelming to read.

One of the things people take issue with is that XML sometimes chokes on some character or some missing bracket. There is, however, both an upside and a downside even to that. The upside is that you don’t have ambiguity like you have with HTML where different cases of semi-invalid syntax can be interpreted differently.

The downside is that it’s a bit harder to author and harder to learn. I agree there’s an argument to be made that the web wouldn’t have become to big so fast if HTML was as stringent as XML, but I’d also argue that we’d be glad if it did today. 🙂

Also, do not use it for everything just because you can, have the sense and judgement to apply it appropriately. If all you have is XML, you tend to always be an XSLT transformation away from what you want. 🙂

I’d argue that the format only really matters when humans need to interact with it. If you’re writing some program that serializes something and sends it somewhere where it is to be consumed by another of your programs, who cares what it looks like so long as it’s as efficient as possible? Use a binary format or bunnies and unicorns for all I care.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector