Как стать автором
Обновить
9.7

XML *

Расширяемый язык разметки

Сначала показывать
Порог рейтинга
Уровень сложности

Стандарт JDF простыми словами

Уровень сложности Простой
Время на прочтение 15 мин
Количество просмотров 1.4K

Организация CIP4 разработала стандарт JDF для автоматизации производственных процессов в печатной индустрии. Давайте подробнее рассмотрим сам формат и сегодняшнее состояние стандарта JDF.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 2

Новости

Когда парсеры URL-адресов расходятся (CVE-2023-38633)

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 3.9K
Аналитика
Перевод

Обнаружение и разбор уязвимости CVE-2023-38633 в librsvg, заключающейся в ситуации, когда две реализации URL-парсера (Rust и Glib) расходятся в парсинге схемы файла, создавая уязвимость к атаке обхода каталога.
Читать дальше →
Всего голосов 45: ↑45 и ↓0 +45
Комментарии 2

XML (SLD) схемы для Geoserver

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 482

Геоинформационные системы тема крайне обширная и довольно полезная. Для создания даже маленькой карты, нужно приложить большое количество сил, даже при использовании такого Opensource проекта как Geoserver. Одним из этапов создания красивой карты есть стилизация геоданных. В Geoserver для стилизации используются SLD схемы на основе XML, об этих схемах и пойдет речь.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

JSON и XML для новичков

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 14K

Краткое описание понятий json и xml, а также работа с ними на языке python.

Всем привет! Это моя первая статья, немного волнительно, но потными ладошками все же пишу. Идея написания пришла ко мне после задачи на работе, которая была связана с направлением xml - файлов в ЦБ. Думаю, многие аналитики, работающие в банке, сталкивались или еще столкнутся с подобными задачами, поэтому хочу помочь будущим поколениям.

Читать далее
Всего голосов 22: ↑11 и ↓11 0
Комментарии 9

Истории

XPath — примеры запросов в html для парсинга сайта

Время на прочтение 9 мин
Количество просмотров 6.1K
Recovery Mode

Парсим данные с сайтов при помощи XPath и Screaming Frog без помощи программистов. Синтаксис XPath для выбора, ссылка на удобное расширение для извлечения пути, примеры для парсинга любых данных + запись моего мастер-класса в гостях у Михаила Шакина.

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 2

DesktopETL — кросс-платформенный прототип ETL-системы, или как регулярно загружать XML/JSON и сохранять в XLS/CSV

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.8K
Кейс
image

Идея моего домашнего проекта началась с простой, на первый взгляд, задачи: с потребности конвертировать файлы формата XML в формат XLS (или CSV) для последующего анализа. И я был наивен, чтобы попробовать решение «в лоб» и с помощью Excel импортировать богатый внутренний мир SAP Business Objects, описанный в иерархической структуре XML, в табличную форму, — и примерно через час мое сознание, в очередной раз выдав исключение о переполнении памяти, подключило опыт, который намекнул, что иерархические структуры заранее неизвестной глубины проще всего обрабатывать посредством рекурсии. Так появился лаконичный скрипт на Python. Потом еще один. И еще. Потом скрипты пошли в массы среди коллег по цеху. Появились фантазии и мечты, например возможность каждые пять минут забирать XML (или JSON) из кафки (Apache Kafka), трансформировать на лету и класть, например, в DWH. Вполне ожидаемо, что была масса вопросов к скриптам и просьба «быстренько поправить». И в какой-то момент, как в том классическом анекдоте про «закопанную стюардессу», я понял, что хватит… Так и появился MVP, который я хотел бы представить в этой статье.
Читать дальше →
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 4

Под капотом Госуслуг: про СМЭВ3 от первого лица

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 15K
Обзор

Привет ИТ-сообщество! Я Анастасия Пятько, аналитик-внедренец из РТЛабс. Это компания, которая развивает всем известные Госуслуги и пытается облегчить нашу бюрократическую жизнь.

Недавно мне довелось выступить на HighLoad++ 2022 с похожей темой: «СМЭВ. Сильно проще, чем кажется. Полезные советы, как стартовать интеграцию через СМЭВ3 и СМЭВ4». Организаторы знают своё дело. В зале была заинтересованная аудитория, которая задавала вопросы с неподдельным интересом. С некоторыми разговор у стенда продолжался ещё несколько часов. Так родилась идея — зафиксировать всё текстом в этой статье.

Читать далее
Всего голосов 37: ↑35 и ↓2 +33
Комментарии 38

Универсальный загрузчик XML на java. Или как загрузить файлы ГАР на 250 гб и остаться при памяти

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 4K

С проблемой загрузки больших XML столкнулся при переходе с КЛАДР и ФИАС на справочники ГАР - Государственный адресный реестр (Федеральная информационная адресная система).

Справочник ГАР содержит более подробную информацию чем предыдущие классификаторы. В том числе информацию по муниципальным делениям. В связи с чем справочник после распаковки занимет около 250 ГБ, что примерно в 3 раза больше чем тот же ФИАС.

Предыдущая загрузка работала на DOM-модели, т.е. весь XML-файл считывался в память. Соответственно при попытке загрузить ГАР таким же способом стали стабильно получать OutOfMemory. А значит настало время менять подход к загрузке)

Немного теории:

DOM (Document Object Model) - это стандартный интерфейс для работы с документами в формате XML (Extensible Markup Language). DOM-модель представляет XML-документ в виде дерева объектов, где каждый элемент и атрибут документа является узлом дерева.

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

StAX (Streaming API for XML) также является API для последовательного чтения и записи XML-документов. Он предоставляет потоковый доступ к XML-документу, позволяя читать его и записывать по частям. StAX предоставляет возможность читать и записывать XML-документы в виде потока событий, аналогично SAX, но также предоставляет возможность читать и записывать XML-документы в виде итерируемых наборов событий. StAX позволяет эффективно обрабатывать большие XML-документы и не требует реализации обработчиков событий.

Читать далее
Всего голосов 15: ↑9 и ↓6 +3
Комментарии 19

ЦУЦ — или как свести 15 тысяч товаров от разных поставщиков на коленке

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 2.1K

По мере роста бизнеса и расширения ассортимента товаров, компания столкнулась с проблемой остатков товаров и актуальными ценами. Если в начале моей работы, количество товара на сайте было в районе 3 тысяч, то на текущий момент позиций более 15 тысяч. Обновлять руками такое количество позиций нереально. С чего я начал работу по автоматизации цен и с какими трудностями столкнулся читайте в моей публикации.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 8

Проверка XML. Schematron

Уровень сложности Сложный
Время на прочтение 9 мин
Количество просмотров 3.5K

Так или иначе, все сервисы сталкиваются с задачами валидации. Часто они сводятся к простым и однотипным проверкам: заполнены ли все обязательные поля, верен ли формат телефонного номера, кредитной карты и пр. Но существуют проекты, в которых условия и правила проверок более разнообразные, да и те временами требуют серьёзного пересмотра. Внесение же изменений или создание дополнительных правил валидации требует непростых согласований и привлечения внимания нескольких команд разработчиков, обновления документации.

Недавно мне довелось поучаствовать в проекте, особую роль в котором занимают функции форматно-логического контроля входящих документов. Как следствие, у меня появились некоторые варианты решения подобных задач. Одним из них я и хочу поделиться.
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 1

XML дерево на С. Пишем подготовительный код для библиотеки targetXML

Уровень сложности Сложный
Время на прочтение 18 мин
Количество просмотров 1.6K

targetXML - маленький экскурс в структуру дерева XML на примере работоспособного кода «pure C».

Здравствуй уважаемый читатель. Я пишу код на С и С++. В этой короткой статье подробно описывается мой подготовительный этап создания маленькой библиотечки на языке С, работающей с файлами xml. Рассказ об опыте такой разработки может пригодится как новичкам, любителям, так и профессионалам. К тому же в статье есть ссылка на исходный код, и вы всегда можете, при желании, заняться оптимизацией.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 3

Краткий обзор Layout XML в Android. Часть 2

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.8K
Обзор

Возможно, что когда-нибудь Compose вытеснит XML также как Kotlin подвинул Java, но пока этого не случилось — продолжу ознакомление новичков в Android-разработке с миром Layouts.

Это продолжение статьи Краткий обзор Layout XML в Android. Часть 1

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 1

WPF: контролы лишенные внешнего вида и неразрешимая задача выбора конфигурации темплейта

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 2.3K
Мнение

Мне последнее время приходится заниматься интерфейсом приложения для анализа данных, визуальным представлением данных на разных слоях анализа, а также навигацией по слоям и по данным. Соответственно, пришлось разбираться c новомодным WPF, который продвигает концепцию реализующую возможность параллельной (независимой) работы дизайнеров, занимающихся внешним видом приложения и разработчиков, реализующих поведение приложения. Дизайнер, конечно, из меня не очень (мягко говоря), а вот с реализованной концепцией программирования внешнего вида элементов управления в приложениях, мне, кажется, удалось разобраться. Собственно, вот этим пониманием некоторых аспектов концепции я и хочу поделиться, в том числе для того, чтобы расширить это понимание по результатам критики и/или обсуждения.

Возможно, кому‑то будет интересно сравнить то, что предлагает WPF, с концепциями реализованными, например, в JavaFX.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 18

Ближайшие события

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Joker
Дата 9 – 14 октября
Время 16:00 – 19:30
Место Санкт-Петербург Онлайн
Вебинар «Запускаем сайт на Linux Ubuntu 22.04»
Дата 10 октября
Время 19:00 – 20:30
Место Онлайн
Открытый урок «Kafka Streams»
Дата 16 октября
Время 10:00
Место Онлайн
Вебинар онлайн-курса «DevOps 1C»
Дата 16 октября
Время 20:00 – 21:30
Место Онлайн
Питч-сессия pravo (tech) impulse
Дата 19 октября
Время 15:45 – 17:30
Место Москва
Вебинар «Разработка бэкенда на Clojure»
Дата 24 октября
Время 20:00 – 21:30
Место Онлайн
Russia Risk Conference 2023 — 19-я конференция по риск-менеджменту
Дата 25 – 26 октября
Время 10:00 – 19:00
Место Москва Онлайн
HolyJS
Дата 2 – 12 ноября
Время 15:00 – 19:00
Место Санкт-Петербург Онлайн
IT Recruiting – HR Forum 2023
Дата 8 – 10 ноября
Время 9:00 – 18:00
Место Москва
Онлайн IT HR-конференция HR42
Дата 17 – 18 ноября
Время 10:00 – 14:00
Место Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн

Краткий обзор Layout XML в Android. Часть 1

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 2.6K
Обзор

Пока модные и современные тестируют Jetpack Compose в новых проектах, мы с вами поговорим о старой доброй XML разметке.

Буквально по паре предложений о каждом Layout, чтобы составить общее представление об их применении. Для тех, кто хочет подробностей — прикрепил дополнительные ссылки.

Статья рассчитана на тех, кто только начинает разработку на Android, но возможно и более опытные разработчики почерпнут для себя полезные сведения.

Читать далее
Всего голосов 10: ↑4 и ↓6 -2
Комментарии 3

Работаем с XML как с массивом, версия 2

Время на прочтение 9 мин
Количество просмотров 4.7K
Кейс
Recovery Mode

Всем привет.

Хочу поделиться с вами опытом в парсинге XML файлов размером до четырёх гигабайт. Что бы это происходило быстро, мы читаем файл последовательно, частями, парсим только нужные нам элементы.

В двух словах для быстрого парсинга файлов надо пользоваться XMLReader в связке с yield.

О моей реализации этой связки читайте ниже.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 31

Как я участвовал в создании информационных систем для медицины

Время на прочтение 6 мин
Количество просмотров 3.8K

В 1987-м году я окончил с красным дипломом приборостроительный факультет челябинского политехнического института по специальности "Автоматика и телемеханика", хотя планировал стать физиком-теоретиком и школу заканчивал в специализированной школе-интернате №18 при МГУ. По распределению попал в специализированное конструкторское бюро и до 1991-го года разрабатывал электронные блоки для бронетанковой техники. До сих пор считаю что полученная при этом инженерная школа является чем-то недостижимым в современных реалиях. В частности, мы с коллегами создали комбинированный аналого-цифровой программируемый комплекс, который в реальном времени проводил расчеты по математической модели объекта, описываемой системой дифференциальных уравнений 4-го порядка с 14-ью нелинейными элементами и принимал решения более 10 тысяч раз в секунду. На современных вычислителях это наверное и можно было бы сделать, но в то время мы решали задачу имея в распоряжении только набор интегральных микросхем, самой крутой из которых была ПЗУ на 2 килобайта и всё наше творчество должно было уместиться в 9 литров объёма и работать в диапазоне температур от -40 до +85.

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 12

Java. Работа с XML-документами

Время на прочтение 12 мин
Количество просмотров 15K

Привет, Хабр! Меня зовут Михаил, я SDET-специалист компании SimbirSoft. Я занимаюсь автоматизацией тестирования, в основном это работа с WEB и REST API, но на последнем проекте применял SOAP. Мне приходилось работать с сообщениями этого протокола, а именно:

— выполнять проверку наличия обязательных атрибутов и тегов SOAP сообщений;

— сравнивать содержание различных сообщений;

— вносить изменения или генерировать новые сообщения для исходящих запросов.

В своей статье я поделюсь несколькими способами работы с XML-документами. Материал будет полезен тем, кто впервые сталкивается  в работе из кода с подобными документами на Java.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 8

Парсинг XML в Golang

Время на прочтение 10 мин
Количество просмотров 9.8K
Туториал

Актуальность XML в 2022 году была бы под вопросом, но все еще остается много legacy систем, которые могут предоставлять данные в этом формате, поэтому нам приходится с ним работать. XML популярен в travel индустрии. Например, GDS (международные системы бронирования, более подробно можно почитать в википедии) или информационная система Darwin ассоциации железнодорожных транспортных компаний Великобритании активно используют его. Поэтому, я надеюсь, что эта статья будет кому-то полезна. В ней рассмотрена пара подходов к парсингу xml в Golang: обычный и потоковый, пользовательский парсинг поля и работа с различными кодировками. Мы будем использовать пакет encoding/xml из стандартной библиотеки. Если вы уже работали c encoding/json, то будет много похожего, но некоторые различия все же есть.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Комментарии 2

Custom View — разбиваем функционал

Время на прочтение 4 мин
Количество просмотров 3.2K

В этой статье пойдет речь о вынесении UI в отдельный блок, компоновкой стандартных элементов.

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

Основной пример будет рассмотрен на простой задаче когда нам необходим Switch в котором будет и текст и описание.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 2

Стартуем из 1С в Python

Время на прочтение 2 мин
Количество просмотров 15K
Recovery Mode

В 2022 модно уметь в Python. Я 1Сник, не гоняюсь за модой, но возникла задача. Клиент хотел обрабатывать XML файл УПД, полученный из «Мой склад» — убрать стартовые нули в тегах КодТов. Выбрал Python для скрипта и получил нужный результат за час!

Читать далее
Всего голосов 27: ↑4 и ↓23 -19
Комментарии 67

Вклад авторов