2009-05-05 18 views
6

Jak rozumiem, XML jest podzbiorem SGML, stworzonym w celu uproszczenia go i zachęcenia do powszechniejszego użycia.Czy są jakieś powody używania SGML zamiast XML?

Podejrzewam, że większość użytecznych funkcji została wprowadzona do XML, ale czy są jakieś funkcje w SGML wystarczająco mocne, aby zmotywować używanie go zamiast XML (i akceptując narzut w złożoności)?

Odpowiedz

8

Jedną z zalet SGML, jeśli edytujesz je ręcznie, jest to, że możesz skracać znaczniki na różne sposoby. Co dokładnie możesz zrobić, zależy od deklaracji SGML dla DTD, którego używasz. Na przykład w DocBook możesz pisać takie rzeczy, jak < literal> foo < />. W HTML możesz pominąć tagi końcowe, dlatego możesz pisać < p> foo ... < p> bar bez zamykania tagów. Możesz też całkowicie pominąć tagi, dlatego też body> < jest opcjonalne w HTML.

Ale XML został wymyślony właśnie dlatego, że wszystkie te warianty sprawiają, że parsowanie SGML jest dość skomplikowane. W dzisiejszych czasach prawdopodobnie znajdziesz bardziej wydajnych edytorów XML niż edytory SGML.

Jeśli chodzi o przetwarzanie, obie formy są równoważne, ponieważ można konwertować tam iz powrotem, z wyjątkiem niektórych przypadków narożnych.

+0

Nrrgh, potrzebujesz przycisku +2 ...! (+1 za doskonałe wyjaśnienie; +1 za niesamowite trivia!) – pinkgothic

1

Nie można odpowiedzieć, jeśli nie masz na myśli konkretnego zastosowania. Możesz uzyskać lepsze indeksowanie i wyszukiwanie za pomocą SGML, ale nie znalazłem przypadku, w którym jest to lepsza opcja niż XML. Jestem pewien, że oni tam są, po prostu ich nie znalazłem.

Wygrywającym czynnikiem jest dojrzałość renderowania na wielu platformach XML. Ta sama kompatybilność nie istnieje dla SGML. Jeśli jednak możesz kontrolować środowisko, nie musi to być czynnik. XML wydaje się zapewniać 90% funkcjonalności przy znacznie mniejszej złożoności.

2

Nie. Jedynym powodem używania SGML jest praca w branży wydawniczej, w której SGML jest już częścią procesu produkcyjnego. (Mogą istnieć inne branże, ale to jedyny taki, w którym mam doświadczenie).

Innym sposobem patrzenia na to jest, mimo że istnieją pewne fajne funkcje w SGML, nie warto płacić za narzędzia, chyba że można wyraźnie pokazać korzyści finansowe za pomocą SGML (patrz "przemysł wydawniczy").