Sol tarafa TypeScript yapıştırın ve "Dönüştür"’e tıklayın — biz XML’e çeviririzTypeScript kodu yapıştırın

Bu araç ne yapar

Bir TypeScript interface’ini birebir yansıtan bir XML payload’ını elle yazmak zorunda kaldıysanız — bir SOAP istemcisi, bir RSS üretici, bir config dosyası veya bir contract test için — ne kadar iskele kurmak gerektiğini bilirsiniz. Tarayıcı size mevcut bir DOM için XMLSerializer sunar; tipli bir nesne için değil. TypeScript’i buraya yapıştırın, tek seferde iyi biçimlenmiş XML alın. Tek bir interface, bir type alias’ı, tipli bir const ya da derin iç içe bir şey — sonuç aynı.

Dönüştürücü yalnızca değerleri değil, tipleri de okur. interface Order { ... } + const order: Order = { ... }, interface’deki her alanı içeren bir <Order> kök öğesi üretir. Literal’de eksik kalan opsiyonel alanlar (field?: T), çıktının bildirilen şekle uyması için boş öğelere dönüşür. readonly, çıktı açısından yok sayılır. Enum’lar değerlerini yayar (string enum’lar string’i, sayısal enum’lar sayıyı). Union tipler literal’in gerçekten içerdiği şeyi yayar. Generic’ler somut örneklemeyle çözülür.

İç içe interface’ler ve diziler iç içe öğeler olarak açılır. items: OrderItem[] alanı, her çocuk için öğe tipinin adını kullanarak <items><OrderItem/><OrderItem/></items> olur. Record ve Map tipleri <Entry><Key/><Value/></Entry> konteynerlerine döner. Date, bigint ve null tipe göre ele alınır — tarihler için ISO-8601, bigint için decimal string, null için boş öğe. Birden fazla tip tanımı artı bir tipli sabit yapıştırırsanız, serialize edilen sabit olur; interface’ler ise şema olarak kullanılır.

Nasıl kullanılır

Üç adım. Kısa bir interface de yapıştırsanız, koca bir types.ts’yi de yapıştırsanız aynı şekilde çalışır.

1

TypeScript’inizi yapıştırın (veya örneği deneyin)

TS’yi olduğu gibi soldaki editöre bırakın. Bir interface, type alias, tipli const veya koca bir modül — hepsi olur. İç içe nesneleri olan gerçekçi bir Order / OrderItem / Address örneğini görmek için Örnek Yükle’ye tıklayın.

Tip açıklamalarını yerinde bırakın — parser çıktı öğe adlarına ve tiplerine karar verirken bunları kullanır. import ve export ifadelerini de bırakabilirsiniz; otomatik olarak yok sayılırlar.

2

Dönüştür’e basın

Yeşil Dönüştür düğmesine tıklayın. Araç tipleri okur, değerleri çözer ve XML’i tek seferde üretir. Çalışırken kısa bir yükleniyor göstergesi görürsünüz.

3

XML’i kopyalayın

Sağdaki panel, standartlara uyan her XML parser’ın kabul edeceği, girintilenmiş ve iyi biçimlenmiş XML ile dolar. Doğrudan SOAP isteğinize, RSS template’inize, config dosyanıza ya da test fixture’ınıza yapıştırın.

Gerçekten işe yaradığı yerler

SOAP / XML API istemcileri

Elinizde bir SOAP istek gövdesi için TypeScript interface’i var ve <code>fetch</code> ile göndermek için XML iskeletine ihtiyacınız var. Interface’i ve tipli bir örneği yapıştırın, XML’i kopyalayın, isteğinize yapıştırın.

XSD odaklı sözleşmeler

Bir <a href="https://www.w3.org/TR/xmlschema-1/" target="_blank" rel="noopener">XSD</a> ile yan yana duran dokümantasyon için TS tiplerinizden XML örnekleri üretin. Örneklerinizi tiplerle, tipleri de şemayla senkronda tutar.

Başlangıç config dosyaları

40 alanlı bir Settings interface’i, XML tabanlı herhangi bir config deposu için düzenlemeye hazır bir XML şablonuna dönüşür. Elle öğe inşası, yazım hataları ve unutulan alanlar yok.

Entegrasyon testleri için mock veri

Vitest ya da Jest kurulumunuzdaki tipli fixture’ları, hâlâ XML tüketen legacy sistemler ve mock sunucular için XML seed verisine çevirin.

Sık sorulanlar

Tipleri mi yoksa sadece nesne değerlerini mi kullanıyor?

İkisini birden. Tipler öğe adlarına, sıralamaya ve hangi alanların bulunması gerektiğine karar verir (eksik opsiyoneller boş öğe olur). Gerçek değer literal’i ise veriyi sağlar. Interface olmadan yalnızca bir const yapıştırırsanız, araç literal’i doğrudan kullanır — yine çalışır, sadece tip odaklı güvenlik ağı olmaz.

Opsiyonel alanlar ve union tipleri nasıl ele alıyor?

Değerde eksik olan opsiyonel alanlar (field?: T), çıktı şekli tutarlı kalsın diye boş öğe (<field/>) olarak yazılır. Union tipler (string | number) literal’in gerçekte içerdiği şeyi yayar. Discriminated union’lar da çalışır — ayırt edici, adına göre attribute veya çocuk öğe olur.

Peki Date, bigint ve enum?

Date değerleri ISO-8601 string’leri olarak çıkar. bigint decimal string olarak (n son eki olmadan) yayılır. String enum’lar string değeri, sayısal enum’lar sayıyı yayar. null boş öğeye dönüşür; undefined, alan required olarak bildirilmemişse öğeyi tamamen düşürür.

Generic, Record ve Map’i ele alıyor mu?

Evet. Generic interface’ler somut örneklemeyle çözülür — gerçek bir Order değeri ile Response<Order> somut şekli yayar. Record<K, V> her anahtar için isimli öğeler içeren bir konteynere döner. Map ise <Entry><Key/><Value/></Entry> çiftlerinden oluşan bir konteyner olur. Tuple tipler her yuva için bir öğe yayar.

Bütün bir types.ts’yi yapıştırabilir miyim?

Evet. İstediğiniz kadar TypeScript yapıştırın. Import ifadeleri yok sayılır, yalnızca-tip bildirimleri şekli tanımlar ve ilk export edilmiş ya da top-level tipli const serialize edilir. Birden fazla aday varsa, çözülebilir alanı en çok olan seçilir.

Kodum saklanıyor mu?

Kod dönüştürme için backend’e gönderilir ve saklanmaz — payload’ı log’lamıyoruz. Online araçlarda hep olduğu gibi, kod gerçekten hassassa yapıştırmadan önce bir göz atın.

İhtiyacınız olabilecek diğer araçlar

TypeScript’ten XML’e yalnızca bulmacanın bir parçası. Bununla iyi giden araçlar şunlar: