RSS besleme hataları kendi kategorilerine sahiptir çünkü bir besleme makine tarafından okunur: tek bir hatalı karakter tüm dosyayı geçersiz kılar. Yandex’in referansı bunun nedenini açıklar ve her hata için bir düzeltme prosedürü sunar.
Beslemeler neden bozulur
Bir besleme; veri formatı, zorunlu alanlar, dize ve URL uzunluğu sınırları, XML kodlaması ve sözdizimi gibi katı gereklilikleri karşılamalıdır. Yandex, bir dosyayı bozan küçük detayları belirtir: fazladan bir tırnak işareti, yanlış bir tarih formatı, gereğinden uzun bir URL.
Ayrıştırma (parsing) hataları
- Hatalı öznitelikler — değerler tırnak içinde olmalı, tırnaklar eşleşmeli, öznitelikler örtüşmemeli veya yanlış iç içe geçmemeli, özel karakterler kaçış dizileriyle belirtilmeli (yalın bir “ve” işareti yerine
&) ve hiçbir öğe bir öznitelik adını tekrarlamamalıdır. - Eksik tırnak işareti — her açılış tırnağının bir kapanış tırnağı olmalıdır. Yandex’in pratik ipucu: dosya elle düzenlendiyse, en son neyin değiştiğine bakın.
- Yanlış tanımlanmış HTTP başlığı — beslemede yinelenen veya yanlış ayarlanmış başlıklar.
- Hatalı kapatılmış CDATA — her bölüm
<![CDATA[ile]]>arasında çalışır ve içerideki fazladan bir]karakteri bölümü erken kapatabilir. Bu, dosyanın doğru göründüğü ancak ayrıştırıcının bunu kabul etmediği sinsi bir hatadır. - Geçersiz karakter — formatın izin verdiği aralığın dışında bir karakter.
Yandex’in önerdiği çalışma yöntemi
- Hata kodunu bulun.
- Ne anlama geldiğini okuyun.
- Adımları takip edin.
- Bildirilen tüm hataları aynı şekilde düzeltin.
- Yeniden kontrol için gönderin.
- Tekrarlanmaması için önleyici tavsiyeleri uygulayın.
Genelleştirilmeye değer tekrarlayan talimat
Neredeyse her girdi aynı iki öneriyle biter: dosyayı bir XML veya YML doğrulayıcıdan geçirin ve besleme programatik olarak oluşturuluyorsa, onu üreten kodu kontrol edin. Gerçek çözüm budur. Elle düzeltilen bir besleme bir sonraki yayında tekrar bozulur; bir kez düzeltilen bir oluşturucu ise hatayı üretmeyi durdurur.
Biz bunu nasıl uyguluyoruz
We treat every feed error as a generator bug rather than a file to patch, which is what Yandex effectively recommends. The one that costs the most time is the prematurely closed CDATA section, because the file reads correctly to a human. Running the feed through a validator on every build — not only when something is reported — is a five-minute pipeline addition that removes this whole category.
İlgili hizmetler