DokumentyObrazyMediaNarzędzia PDF

Konwerter XML na YAML Online

Konwertuj konfiguracje XML do nowoczesnego YAML. Bezpłatnie, w przeglądarce.

# // Invalid XML: DOMParser is not defined
Processed in your browser

Starszy XML do nowoczesnego YAML

Migracja Spring/Java

Konwertuj beany XML frameworka Spring do strukturalnego YAML jako punkt wyjścia do modernizacji projektu.

Potoki CI/CD

Transformuj konfiguracje Maven/Ant XML do YAML dla GitHub Actions, GitLab CI lub CircleCI.

100% prywatne

Twój XML nigdy nie opuszcza przeglądarki. Bez serwerów, bez rejestracji, bez limitów.

W czasie rzeczywistym

Konwersja odbywa się podczas pisania. Błędy składniowe XML są sygnalizowane natychmiast.

Trzy kroki, żadnych komplikacji

1

Wklej swój XML

Wklej zawartość XML do lewego edytora. Obsługuje pełny standard XML 1.0: atrybuty, przestrzenie nazw, CDATA i encje.

2

Automatyczna konwersja

Konwerter parsuje strukturę XML i generuje przejrzysty, poprawnie wcięty YAML 1.2. Cały proces odbywa się w Twojej przeglądarce — żadne dane nie są przesyłane.

3

Skopiuj lub pobierz plik YAML

Otrzymaj wynikowy YAML gotowy do użycia w Docker Compose, GitHub Actions, Kubernetes, Ansible lub dowolnym nowoczesnym zestawie narzędzi.

Masz pytania?

Najczęstszym scenariuszem jest migracja konfiguracji frameworków Java używających XML — pliku applicationContext.xml frameworka Spring, deskryptorów kompilacji Maven, plików kompilacji Ant — do nowoczesnych narzędzi opartych na YAML używanych przez Spring Boot, GitHub Actions, GitLab CI, CircleCI, Kubernetes i Ansible. XML był dominującym standardem konfiguracji między 1998 a ok. 2012 rokiem; YAML 1.2 (opublikowany w 2009 roku) stał się preferowanym czytelnym dla człowieka formatem konfiguracji w ekosystemie DevOps. Konwersja typowych konfiguracji Spring XML do YAML redukuje objętość pliku o 30–50%, jednocześnie dramatycznie poprawiając czytelność.

Atrybuty XML nie mają bezpośredniego odpowiednika w YAML. Powszechnie przyjętą konwencją jest mapowanie ich jako kluczy podrzędnych z prefiksem '@' (na przykład <bean id='myBean' class='com.example.MyClass'> staje się obiektem YAML z kluczami '@id' i '@class'). Zawartość tekstowa elementu (#text) jest również mapowana jako osobny klucz, gdy element ma zarówno atrybuty, jak i tekst. Ta reprezentacja jest zgodna z bibliotekami js-yaml, PyYAML i SnakeYAML.

Tak. Pliki zasobów i layoutów Android (res/layout/*.xml, res/values/*.xml) to standardowy XML. Konwerter tworzy odpowiadający mu strukturalny YAML, przydatny jako krok pośredni podczas migracji do Kotlin DSL lub Jetpack Compose, lub do automatycznego przetwarzania zasobów skryptami Python lub Ruby. Przestrzenie nazw Androida (xmlns:android='http://schemas.android.com/apk/res/android') są zachowywane jako klucze w wynikowym YAML.

XML 1.0 został opublikowany przez W3C w lutym 1998 roku jako uproszczony podzbiór SGML, zaprojektowany przede wszystkim do wymiany danych między heterogenicznymi systemami. YAML 1.2 został opublikowany w październiku 2009 roku jako rewizja czyniąca YAML ścisłym nadzbiorem JSON. XML wymaga jawnych tagów otwierających i zamykających, używa atrybutów i elementów podrzędnych jako dwóch równoległych mechanizmów reprezentacji danych i ma natywną obsługę przestrzeni nazw, DTD i XML Schema. YAML używa wcięć do hierarchii, rozróżnia skalary, listy i mapy przy minimalnej składni i nie ma natywnego systemu schematów. W przypadku konfiguracji aplikacji YAML jest znacznie bardziej czytelny i zwięzły.

Jest to jedna z najczęstszych migracji w korporacyjnych projektach Java. Spring Framework używał XML do definicji beanów (applicationContext.xml, beans.xml) do czasu, gdy Spring Boot spopularyzował plik application.yml od swojego pierwszego stabilnego wydania w kwietniu 2014 roku. Bezpośrednie, jeden do jednego przekształcenie beanów Spring XML do YAML nie jest proste, ponieważ są one semantycznie różne: Spring XML opisuje graf obiektów kontenera IoC, podczas gdy application.yml zawiera właściwości konfiguracyjne aplikacji. Niemniej konwersja XML do YAML jest użytecznym punktem wyjścia do zrozumienia struktury przed refaktoryzacją do adnotacji Java i konfiguracji opartej na właściwościach.

Wygenerowany YAML jest syntaktycznie prawidłowy zgodnie ze specyfikacją YAML 1.2 i może być parsowany przez dowolną standardową bibliotekę YAML. Jednak semantyczna poprawność dla Kubernetes (kubectl apply) lub Ansible (ansible-playbook) zależy od tego, czy wejściowy XML reprezentuje dane z właściwą strukturą dla tych systemów. Narzędzie wykonuje konwersję strukturalną; jeśli Twój XML już poprawnie modeluje specyfikację Kubernetes lub playbook Ansible, wynikowy YAML będzie solidnym punktem wyjścia, choć manualne dostosowania dla typów specyficznych dla danej platformy będą prawdopodobnie potrzebne.

Konwertuj XML do YAML: migracja starszych konfiguracji do nowoczesnego DevOps

XML (eXtensible Markup Language) został opublikowany przez W3C w wersji 1.0 w lutym 1998 roku. W pierwszej dekadzie XXI wieku XML stał się powszechnym formatem konfiguracji w korporacyjnym ekosystemie Java: Spring Framework używał XML do definiowania kontekstu aplikacji i grafów beanów (applicationContext.xml, web.xml, beans.xml), Maven przyjął XML dla deskryptora projektu (pom.xml, który do dziś pozostaje w XML), a Ant opisywał zadania kompilacji w pliku build.xml. Poza Javą Android używał XML do layoutów interfejsu (res/layout/) i zasobów (res/values/strings.xml, colors.xml), usługi SOAP Web Services używały XML jako protokołu wiadomości, a standardy takie jak XHTML, SVG, MathML i RSS były zbudowane na XML 1.0. Obszerność XML — obowiązkowe tagi otwierające i zamykające, równoległe mechanizmy atrybutów i elementów podrzędnych — była akceptowalna, gdy maszyny były głównymi czytelnikami plików konfiguracyjnych.

YAML 1.2, opublikowany w październiku 2009 roku, zmienił paradygmat czytelnej dla człowieka konfiguracji. W przeciwieństwie do XML, YAML używa wcięć do wyrażania hierarchii, rozróżnia mapy (obiekty), listy i skalary przy minimalnej składni i jest ścisłym nadzbiorem JSON od wersji 1.2. Ekosystem DevOps masowo przyjął YAML: Docker Compose używa pliku docker-compose.yml od swojego pierwszego publicznego wydania w grudniu 2013 roku, Kubernetes używa YAML dla wszystkich manifestów od swojego uruchomienia w czerwcu 2014 roku, Ansible przyjął YAML dla playbooków i ról, GitHub Actions używa YAML dla przepływów pracy (.github/workflows/*.yml), a Spring Boot przyjął plik application.yml jako alternatywę dla application.properties od swojego pierwszego stabilnego wydania w kwietniu 2014 roku. Dla typowych konfiguracji infrastruktury ekwiwalent YAML jego odpowiednika XML używa o 30–50% mniej znaków przy znacznie lepszej czytelności.

Potrzeba konwersji XML do YAML pojawia się często w projektach modernizacji. Najczęstszym scenariuszem w ekosystemie Java jest migracja klasycznych aplikacji Spring Framework (Spring 2.x, 3.x, 4.x z konfiguracją XML) do Spring Boot, gdzie właściwości konfiguracyjne są wyrażane w pliku application.yml. Choć mapowanie nie jest jeden do jednego — beany Spring XML opisują graf obiektów kontenera IoC, podczas gdy application.yml zawiera właściwości konfiguracyjne aplikacji — posiadanie XML przekonwertowanego do strukturalnego YAML znacznie ułatwia analizę i refaktoryzację. Innym częstym scenariuszem jest migracja potoków kompilacji Ant lub Maven (które używają XML) do nowoczesnych narzędzi CI/CD opartych na YAML. Wreszcie projekty Android przetwarzające zasoby XML skryptami mogą skorzystać z reprezentacji YAML do programatycznej manipulacji. Convertir.ai wykonuje konwersję w całości w Twojej przeglądarce przy użyciu standardowego JavaScript, bez wysyłania jakichkolwiek danych do serwera.