LINUX.ORG.RU

Пятая редакция стандарта XML 1.0 несовместима с XML Namespaces 1.0

 ,


0

0

Попытка сделать XML более интернациональным привела к несовместимости с текущей редакцией стандарта XML Namespaces 1.0.

Один из изобретателей XML, Тим Брей, написал возражение по поводу готовящегося принятия пятой редакции XML 1.0:

http://lists.w3.org/Archives/Public/x...

Суть проблемы заключается в следующем. До пятой редакции стандарт XML 1.0 позволял использовать символы Unicode, принятого в 1998 году. Это означает, что символы, добавленные в более поздней версии Unicode, не могут быть использованы в названиях тагов и атрибутов XML 1.0 до пятой редакции. К таким символам относятся, например, буквы Амхарского языка и языка индейского племени Чероки. Пятая редакция XML 1.0 позволяет пользоваться любыми символами Unicode, добавленными после 1998 года. Однако текущий стандарт на XML Namespaces 1.0 всё ещё не позволяет этого.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от anonymous

format screwed up:

javascript:
---
книги:"1,4,8"
ц:"1,8,10"
жаба:"4"
---

config:
---
книги:1,4,8
ц:1,8,10
жаба:4
---

кстати, ява-пропертиз поддерживаыет `:` как делимитер ключ-значение - автоматически (как аналог `=`), а в C конфиге поменять - элементарно.

Я не говорю о надёжности стандарта (на затирание нескольких символов), Не нравящаяся вам некоторая избыточность в ключах - даёт независимость данных. Только такие форматы должны быть в надёжных аппликациях. А теперь затрите 3 случайных символа в ХМЛе (если это будет скобка). JSON - не лучше в смысле надёжности.

anonymous
()
Ответ на: комментарий от anonymous

> Вы сразу под многими системами работали? (типа одновременно и OS/390, AIX, солярка, linux), чтобы скрипт писать один раз и мочь его подправить не используя разные редакторы? везде и быстро. и данные проанализировать и подправить.

Я умею работать с vi. Но предпочитаю vim просто потому что люблю себя любимого и без надобности ограничивать себя vi-ем не стану. Если юнец использует только vi и плюёт на vim, то он типично красноглаз; серьёзный дядька же в этой ситуации --- попросту мудак.

gaa ★★
()
Ответ на: комментарий от stellar

> Я работаю регулярно с HP/UX, Solaris, FreeBSD и Linux. У меня шелл-скрипты написаны на борншелле.

на таргет-системе под USS(ОС/390) - не было баша (?).

anonymous
()
Ответ на: комментарий от gaa

я согласен и не спорю - что vim - несравнимо удобнее и надо пользоваться им.
Но есть случаи - когда есть только vi. И надо уметь то-же самое сделать на нём. Как и с Bourne shell.

anonymous
()
Ответ на: комментарий от stellar

>>Вы сразу под многими системами работали? (типа одновременно и OS/390, AIX, солярка, linux), чтобы скрипт писать один раз и мочь его подправить не используя разные редакторы? везде и быстро. и данные проанализировать и подправить. Остальное из той же серии.

>Я работаю регулярно с HP/UX, Solaris, FreeBSD и Linux. У меня шелл-скрипты написаны на борншелле.

>Все работает. ЧЯДНТ?

Таки где Вы упомянули здесь AIX ? Всё перечисленное - более/менее UNIX/POSIX-стандартизовано.

AIX = "A'int unIX"

А про OS/390 - не знаю ничего.

anonymous
()
Ответ на: комментарий от stellar

Потому у Linux и нет стабильного ядерного API, и шедулеры регулярно переписывают и т.п.

> Почему?

велосипед, зоопарк, ёжики, кактус?�����

> P.S. К логопеду, быдло!

осиль словарь, регистрант!���

anonymous
()
Ответ на: комментарий от gaa

красноглазие-же имхо - это узкая область. Надо стараться знать всё и уметь всё. Что не возможно, но надо стараться. И писать только на баше или используя только один как-бы универсальный ХМЛ (как и использовать одну только винду) - это тоже красноглазие. То-есть ограниченность. Сюда можно приплести общее развитие, спорт (но мы не об этом ;)

anonymous
()
Ответ на: комментарий от anonymous

аналогично:
vi есть везде (а не vim или nano)
grep/cat/sed есть везде (а не хмл парсеры)
sqlplus есть везде
и прочее

anonymous
()
Ответ на: комментарий от anonymous

как один умный чек (физик) говорил, рисуя 2 круга: маленький (почти точку) большой, с кривой и длинной границей. "Вот это - группа того что знает один человек, и другой. И чем больше ты знаешь - тем больше граница с незнаемым. И ты менее уверен в себе. Потому что знаешь - как много ты не знаешь".

anonymous
()
Ответ на: комментарий от stellar

> Все работает. ЧЯДНТ?

нет, как раз ты - всё делаешь правильно.

>Дружок, а ты глазки-то протори и перечитай что я писал. Нигде ни слова про bash не было.


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

anonymous
()
Ответ на: комментарий от stellar

> Дружок, а ты глазки-то протори и перечитай что я писал. Нигде ни слова про bash не было.

дружок, а ты чем хамить - проверил бы что сам и написал (я оказывается не ошибся, зря извинялся), твои слова:

> С AIX я не работал, но в Гугле говорят, что борншелл там есть Пруфлинк: http://www.softpanorama.org/Scripting/Shellorama/portability.shtml

"...Solaris, AIX and linuxes have __bash__ installed out of the box..."

тебе самому протереть глазки-бы не помешало

anonymous
()
Ответ на: комментарий от gaa

>Таки ЛОР сначала на пыхпыхе был написан. Так что примите незвиздин, батенька.

Пруфлинк с печатью maxcom-а или небыло

anonymous
()
Ответ на: комментарий от r

>Это ты палишсо - какого хрена у тебя экраны на всех стрингах? Оно даже не заработает.

Бесплатный прокси экранирует. Хз, наверное этот прокси разработал GuttaLinux.

Ну вот без экранов http://www.everfall.com/paste/id.php?91h3d7npzrut

anonymous
()
Ответ на: комментарий от anonymous

> аналогично: vi есть везде (а не vim или nano), grep/cat/sed есть везде (а не хмл парсеры), sqlplus есть везде и прочее

4.2!!!

$ sqlplus
bash: sqlplus: команда не найдена

gaa ★★
()
Ответ на: комментарий от anonymous

>именно поэтому в Links2 при попытке добавить - Java Exception, а в Dillo - шрифты?

Именно поэтому удивительно, почему ты все лазишь через какой-то Dillo, а не написал свой правильный браузер на vb?

anonymous
()
Ответ на: комментарий от anonymous

>Только такие форматы должны быть в надёжных аппликациях. А теперь затрите 3 случайных символа в ХМЛе (если это будет скобка). JSON - не лучше в смысле надёжности.

Мне за 23 года программирования ни разу не удалось случайно затереть ни одного символа ни в одном файле. Расскажи нам, как у тебя это получается? Ты кому то платишь, чтобы они символы тебе случайно затирали?

anonymous
()
Ответ на: комментарий от gaa

> bash: sqlplus: команда не найдена

не издевайся - ты же понимаешь о чём я говорю. если нет: этот клиент можно установить (он есть) на гораздо большем количестве - чем какой-нить SQLdeveloper, PLSQL developer или Todd).

anonymous
()
Ответ на: комментарий от anonymous

> Какого Рейзера?

а всё того-же, Ганса

anonymous
()
Ответ на: комментарий от anonymous

> Мне за 23 года программирования ни разу не удалось случайно затереть ни одного символа ни в одном файле.

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

или подожди лет 20 и посмотри на свои архивы.

anonymous
()
Ответ на: комментарий от anonymous

>Мне за 23 года программирования ни разу не удалось случайно затереть ни одного символа ни в одном файле. Расскажи нам, как у тебя это получается?

и что - ни одного конфига битого от других не получал, не даунлодил с интернета? С описками, соединёнными строками, ошибками?
(а мы говорим здесь в том числе о конфигах - как миниатюрных модифицируемых челом базах)
ты с какой планеты?

anonymous
()

Вот реальный пример - одна и та-же конфигурация. Вам судить - что легче и надёжнее (размер - тоже не в пользу ХМЛ):

log4j.properties:
-------8<--------
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug, stdout
-------8<--------

то-же через ваш кривой хмл:

log4j.xml
-------8<--------
<?xml version="1.0"?>
<log4j:configuration>
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n"/>
</layout>
</appender>
<root>
<priority value="debug"></priority>
<appender-ref ref="stdout"/>
</root>
</log4j:configuration>
-------8<--------

anonymous
()
Ответ на: комментарий от anonymous

размер ХМЛ - будет более чем в 2 раза (когда ХМЛ-щики вставляют белые символы, против которых формат и создавался. То-есть и им нужны строки, оказываыется).
Стойкое убеждение что формат создавался виндузятниками, которые боялись \n без \r в нотепаде ;)
ну и которые просто не могли знать о пользе грепа ввиду его незнания.

anonymous
()
Ответ на: комментарий от anonymous

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

r ★★★★★
()
Ответ на: комментарий от r

и подобную фигню вычисти:

> <priority value="debug"></priority>


К стати знаешь что будет если поменять имя аппендера на другое? Любая приличная IDE подсветит, что appender-ref ссылается на аппендер которого нет.

r ★★★★★
()
Ответ на: комментарий от r

> Ты этот реальный пример из простой консоли к более продвинутой конфигурации просунь - сразу видно будет где черт ногу сломит. А так у тебя тут даже ни одной категории нет.

камон,

ты думаешь я не админил обе нотации? Приведённый выше - просто для демонстрации. Здесь -более реальный (но без экстенденных своих классов). Я потому и ругаюсь на ХМЛ что знаю о чём говорю.
любая подстановка может быть сделана grep/sed/awk просто.

------8<------
log4j.rootCategory=DEBUG, stdout, FILE, SMTP
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=chat.log
# Print the date in ISO 8601 format
#log4j.appender.LOG.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.FILE.layout.ConversionPattern=%d %-5p [%c] %m%n
#maximum log file size
log4j.appender.FILE.MaxFileSize=100000KB
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.MaxBackupIndex=3
log4j.appender.FILE.Append=true
log4j.appender.FILE.Threshold=INFO

#log4j.logger.foo=TRACE2#org.sp.util.XLevel
#log4j.loggerFactory=org.sp.util.XLoggerFactory
log4j.category.trace=DEBUG
log4j.category.trace.sql=ERROR

log4j.appender.SMTP=org.apache.log4j.net.SMTPAppender
log4j.appender.SMTP.layout=org.apache.log4j.PatternLayout
log4j.appender.SMTP.layout.ConversionPattern=%d %-5p [%t] - %m%n
log4j.appender.SMTP.To=name@gomain.com
log4j.appender.SMTP.From=name@gomain.com
log4j.appender.SMTP.SMTPHost=smtp.domain.com
log4j.appender.SMTP.Subject=System Error on 192.169.1.10
log4j.appender.SMTP.LocationInfo=true
log4j.appender.SMTP.BufferSize=1
log4j.appender.SMTP.Threshold=FATAL
------8<------

anonymous
()
Ответ на: комментарий от r

какая к чёрту IED - если серваки админятся через телнет или ssh на vi, где вима нет?
Или скриптами (если кластер/вебфарм - не вручную-же), где гораздо удобнее сделать подтановку в моём примере шелл-скриптом (1 строка)

хмл - это пионерия, не убедишь :)

anonymous
()
Ответ на: комментарий от anonymous

а теперь, пожалуйста, - тоже самое - на ХМЛ (я пишу подобные конфиги со скоростью печати. Они простые. Сколько будете писать хотя бы эту простую конфигурацию на ХМЛ, интересно?
Вас надо заслать интегратором или траблшутером в большую организацию с гетерогенными системами, где вокруг заказчиков - вам надо будет срочно в реал-тайме решать проблемы, делать изменения/подстановки, деплоить, отлаживать, на других системах, не тех на которых Вы писали. Кастомер запустил продукт, например, на каком-нить AIX или мейнфрейме. Не обижайтесь, но умея работать только с ИДЕ - Вы будете выглядеть жалко, вернее ничего не сможете сделать.

anonymous
()
Ответ на: комментарий от r

> appender-ref


референсы - большое зло. Так иногда запутают конфиги или билд-системы (десятки индирекшенов, макры) - что запарывают продукт.
Так как проще запутать в течение нескольких месяцев плетения кружев, чем разбираться потом, поддерживать и расширять.
Конфиги обязаны быть простыми.
Если они превращаются в код - плохой дизайн. Это уже перетёрто.

anonymous
()
Ответ на: комментарий от r

> Табы. Просто лор их схавал. Сравнивался pretty printed JSON vs pretty printed XML.

Ну-ка, запость сюда с табами, да чтобы вышли те цифры, что ты говорил -- когла у json-а сильно больше? Ты явно или немерянно табов лишних туда напихал, либо в json-e табы у тебя пробелами, а в xml-e табами.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от r

> Извини но в JSON атрибутов нет вообще, так что не смешите мои тапки. Все что может быть представлено JSON может быть представленно в XML меньшим или равным размером. Обратное не верно.

Атрибуты в понимании XML явно не нужны -- так как они не рекурсивны. И то что в JSON именно так -- это его преимущество, а не недостаток.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

И мне совершенно незачем представлять кривую структуру XML меньшим числом символов. Однако если надо, то вот (на 1 символ больше):

<sypertag at="1"><subtag at="2"/></supertag>

{"supertag":{"at":1,"_":{"subtag":{"at":2}}}}

Кстати, обычно внутренность несет смысловую нагрузку, поэтому конкретное имя вместо _ было бы оправдано.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

Кстати, в json допускается пустой ключ.

<sypertag at="qwerty">
    <subtag at="asdf"/>
</supertag>

{"supertag":{
    "at":"qwerty",
    "":{
        "subtag":{"at":"asdf"}
       }
    }
}  

Такой вариант длиннее, но речь шла только об эмуляции xml-я json-ом, а при эмуляции обычно получается более длинное представление.

А если брать с самого начала -- то у нас обычно 

class Supertag
{
  String at;
  Subtag[] contents;
}

class Subtag
{
  String at;
}


и более естественно писать:

<sypertag at="qwerty">
    <contents>
        <subtag at="asdf"/>
    </contents>
</supertag>

{"supertag":{
    "at":"qwerty",
    "contents":[
       subtag:{"at":"asdf"}
       ]
    }
}

Тут уж никакой эмуляции нет. 

www_linux_org_ru ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.