Standardowy uogólniony język znaczników — Standard Generalized Markup Language

Standardowy uogólniony język znaczników
SGML.svg
Rozszerzenie nazwy pliku
.sgml
Rodzaj mediów internetowych
aplikacja/sgml, tekst/sgml
Jednolity identyfikator typu (UTI) public.xml
Opracowany przez ISO
Rodzaj formatu Język znaczników
Rozszerzony z GML
Rozszerzony do HTML , XML
Standard ISO 8879

SGML ( SGML ; ISO 8879: 1986) to standard definiowania uogólnione języki znaczników dla dokumentów. ISO 8879 Załącznik A.1 stwierdza, że ​​uogólnione znaczniki są „oparte na dwóch postulatach ”:

  • Deklaratywny : znacznik powinien opisywać strukturę dokumentu i inne atrybuty, a nie określać przetwarzania, które należy wykonać, ponieważ jest mniej prawdopodobne, że będzie kolidował z przyszłymi zmianami.
  • Rygorystyczne: Aby umożliwić znacznikom skorzystanie z dostępnych technik przetwarzania znaczników, należy rygorystycznie definiować obiekty, takie jak programy i bazy danych .

DocBook SGML i LinuxDoc to przykłady, które były używane prawie wyłącznie z rzeczywistymi narzędziami SGML.

Wersje standardowe

SGML to norma ISO : „ISO 8879:1986 Przetwarzanie informacji – Systemy tekstowe i biurowe – Standard Generalized Markup Language (SGML)”, której istnieją trzy wersje:

  • Oryginalny SGML , który został zaakceptowany w październiku 1986 r., po którym nastąpiło drobne sprostowanie techniczne.
  • SGML (ENR) , w 1996 r., powstał w wyniku technicznego sprostowania, aby dodać rozszerzone reguły nazewnictwa, pozwalające na oznaczanie w dowolnym języku i skryptach.
  • SGML (ENR+WWW lub WebSGML) , w 1998 roku, powstał w wyniku technicznego Corrigendum w celu lepszej obsługi wymagań XML i WWW.

SGML jest częścią trio norm ISO dla dokumentów elektronicznych opracowanych przez ISO/IEC JTC1/SC34 (ISO/IEC Wspólny Komitet Techniczny 1, Podkomitet 34 – Opis dokumentów i języki przetwarzania):

  • SGML (ISO 8879) – Uogólniony język znaczników
    • SGML został przerobiony w 1998 roku na XML , udany profil SGML. Pełny SGML jest rzadko spotykany lub używany w nowych projektach.
  • DSSSL (ISO/IEC 10179) – Język przetwarzania i stylizacji dokumentów oparty na schemacie .
    • DSSSL został przerobiony na W3C XSLT i XSL-FO, które używają składni XML. Obecnie DSSSL jest rzadko używany w nowych projektach poza dokumentacją Linuksa .
  • HyTime – Uogólniony hipertekst i planowanie.
    • HyTime został częściowo przerobiony na W3C XLink . HyTime jest rzadko używany w nowych projektach.

SGML jest wspierany przez różne raporty techniczne, w szczególności

  • ISO / IEC TR 9573 – Przetwarzanie informacji – urządzenia wspierające SGML – Techniki korzystania z SGML
    • Część 13: Zestawy podmiotów publicznych dla matematyki i nauk ścisłych
      • W 2007 roku grupa robocza W3C MathML zgodziła się przejąć utrzymanie tych zestawów jednostek.

Historia

SGML pochodzą od IBM „s ogólnego Markup Language (GML), które Charles Goldfarb , Edward Mosher i Raymond Lorie opracowanego w 1960 roku. Goldfarb, redaktor międzynarodowego standardu, ukuł termin „GML”, używając inicjałów ich nazwisk. Goldfarb napisał również ostateczną pracę nad składnią SGML w „Podręczniku SGML”. Składnia SGML jest bliższa formatowi COCOA . Jako język znaczników dokumentów, SGML został pierwotnie zaprojektowany, aby umożliwić udostępnianie czytelnych maszynowo dokumentów o dużych projektach w rządzie, prawie i przemyśle. Wiele takich dokumentów musi pozostać czytelnych przez kilkadziesiąt lat – przez długi czas w dziedzinie technologii informatycznych . SGML był również szeroko stosowany przez wojsko, przemysł lotniczy, literaturę techniczną i przemysł wydawniczy. Pojawienie się profilu XML sprawiło, że SGML nadaje się do szerokiego zastosowania na małą skalę, ogólnego użytku.

Fragment Oxford English Dictionary (1985), przedstawiający znaczniki SGML

Ważność dokumentu

SGML (ENR+WWW) definiuje dwa rodzaje ważności. Zgodnie ze zmienionymi warunkami i definicjami ISO 8879 (z publicznego projektu):

Zgodny dokument SGML musi być dokumentem SGML z poprawnym typem, dokumentem SGML z poprawnym typem lub jednym i drugim. Uwaga: użytkownik może chcieć wymusić na dokumencie dodatkowe ograniczenia, takie jak to, czy instancja dokumentu jest przechowywana integralnie lub wolna od odwołań do encji.

Typu ważny dokument SGML jest zdefiniowany przez normę jako

Dokument SGML, w którym dla każdej instancji dokumentu istnieje powiązana deklaracja typu dokumentu (DTD), z którym DTD ta instancja jest zgodna.

Tag ważny dokument SGML jest zdefiniowany przez normę jako

Dokument SGML, którego wszystkie instancje dokumentu są w pełni oznakowane. Z żadną instancją nie musi być powiązana deklaracja typu dokumentu . Uwaga: Jeśli istnieje deklaracja typu dokumentu , instancję można przeanalizować z odniesieniem do niej lub bez niej.

Terminologia

Poprawność tagów została wprowadzona w SGML (ENR+WWW) do obsługi XML, który pozwala na dokumenty bez deklaracji DOCTYPE, ale które mogą być parsowane bez gramatyki, lub dokumenty, które mają deklarację DOCTYPE, która nie wnosi wkładu XML Infoset do dokumentu. Standard nazywa to w pełni otagowanym . Przechowywane integralnie odzwierciedla wymóg XML , aby elementy kończyły się w tej samej encji, w której się zaczęły. Bez odniesień odzwierciedla wymaganie HTML , że odniesienia do encji dotyczą znaków specjalnych i nie zawierają znaczników. Komentarz dotyczący ważności SGML, zwłaszcza komentarz, który powstał przed 1997 r. lub nie jest świadomy SGML (ENR+WWW), obejmuje tylko ważność typu .

Nacisk SGML na ważność wspiera wymóg, aby uogólnione znaczniki były rygorystyczne. (ISO 8879 A.1)

Składnia

Dokument SGML może składać się z trzech części:

  1. Deklaracja SGML,
  2. Prolog, zawierający deklarację DOCTYPE z różnymi deklaracjami znaczników, które razem tworzą definicję typu dokumentu (DTD), oraz
  3. sama instancja, zawierająca jeden najwyższy element i jego zawartość.

Dokument SGML może składać się z wielu jednostek (dyskretnych fragmentów tekstu). W SGML encje i typy elementów używane w dokumencie mogą być określone za pomocą DTD, różne zestawy znaków, cechy, zestawy ograniczników i słowa kluczowe są określone w Deklaracji SGML, aby utworzyć konkretną składnię dokumentu.

Chociaż pełny SGML pozwala na niejawne znaczniki i inne rodzaje znaczników, specyfikacja XML (s4.3.1) stwierdza:

Każdy dokument XML ma zarówno strukturę logiczną, jak i fizyczną. Fizycznie dokument składa się z jednostek zwanych podmiotami. Podmiot może odwołać się do innych podmiotów, aby spowodować ich uwzględnienie w dokumencie. Dokument zaczyna się w „głównym” lub encji dokumentu. Logicznie rzecz biorąc, dokument składa się z deklaracji, elementów, komentarzy, odwołań do znaków i instrukcji przetwarzania , z których wszystkie są wskazane w dokumencie za pomocą wyraźnych znaczników.

Aby uzyskać wstępne informacje na temat podstawowej, nowoczesnej składni SGML, zobacz XML . Poniższy materiał koncentruje się na funkcjach nie w XML i nie jest wyczerpującym podsumowaniem składni SGML.

Funkcje opcjonalne

SGML uogólnia i obsługuje szeroką gamę języków znaczników, jakie można znaleźć w połowie lat 80-tych. Obejmowały one od zwięzłej składni podobnej do Wiki , poprzez języki w nawiasach typu RTF , aż po języki z dopasowywaniem znaczników w stylu HTML . SGML zrobił to za pomocą stosunkowo prostej domyślnej składni odniesienia konkretnej, rozszerzonej o dużą liczbę opcjonalnych funkcji, które można włączyć w Deklaracji SGML. Nie każdy parser SGML może przetworzyć każdy dokument SGML. Ponieważ deklarację systemową każdego procesora można porównać z deklaracją SGML dokumentu, zawsze można wiedzieć, czy dokument jest obsługiwany przez określonego procesora.

Wiele funkcji SGML dotyczy minimalizacji znaczników. Inne funkcje dotyczą współbieżnego (równoległego) znacznika (CONCUR), łączenia atrybutów przetwarzania (LINK) oraz osadzania dokumentów SGML w dokumentach SGML (SUBDOC).

Pojęcie funkcji dostosowywalnych nie było odpowiednie do użytku w sieci WWW, więc jednym z celów XML było zminimalizowanie funkcji opcjonalnych. Jednak dobrze sformułowane reguły XML nie mogą obsługiwać języków podobnych do Wiki, co sprawia, że ​​są one niestandaryzowane i trudne do zintegrowania z nietekstowymi systemami informacyjnymi.

Konkretne i abstrakcyjne składnie

Zwykła (domyślna) konkretna składnia SGML przypomina ten przykład, który jest domyślną konkretną składnią HTML :

<QUOTE TYPE="example">
  typically something like <ITALICS>this</ITALICS>
</QUOTE>

SGML zapewnia abstrakcyjną składnię, którą można zaimplementować w wielu różnych typach konkretnej składni . Chociaż norma znaczników używa nawiasów kątowych jako ograniczników znaczników początkowych i końcowych w dokumencie SGML (zgodnie ze zdefiniowaną w standardzie referencyjną składnią konkretną ), możliwe jest użycie innych znaków — pod warunkiem, że odpowiednia składnia konkretna jest zdefiniowana w dokumencie SGML deklaracja . Na przykład, SGML Interpreter może być zaprogramowany do analizowania GML, znamienny tym, że znaczniki są rozdzielone lewej okrężnicy i prawej kropki , tak więc, : p przedrostek oznacza znacznika końcowego: :xmp.Hello, world:exmp.. Zgodnie ze składnią referencyjną, w nazwach znaczników nie ma rozróżniania wielkich i małych liter, a zatem trzy znaczniki: (i) <quote>, (ii) <QUOTE>i (iii) <quOtE>są równoważne. ( UWAGA: konkretna składnia może zmienić tę regułę poprzez deklaracje NAMECASE NAMEING).

Minimalizacja znaczników

SGML posiada funkcje zmniejszające liczbę znaków wymaganych do oznaczenia dokumentu, które muszą być włączone w Deklaracji SGML. Procesory SGML nie muszą obsługiwać wszystkich dostępnych funkcji, co pozwala aplikacjom tolerować wiele rodzajów nieumyślnych pominięć znaczników; jednak systemy SGML zwykle nie tolerują nieprawidłowych struktur. XML nie toleruje pominięć składni i nie wymaga DTD do sprawdzania poprawności sformułowania.

POMIŃ TAG

Zarówno tagi początkowe, jak i końcowe mogą zostać pominięte w instancji dokumentu, pod warunkiem, że:

  1. funkcja OMITTAG jest włączona w Deklaracji SGML,
  2. DTD wskazuje, że tagi można pominąć,
  3. (dla tagów początkowych) element nie ma powiązanych wymaganych #REQUIREDatrybutów ( ) oraz
  4. tag można jednoznacznie wywnioskować na podstawie kontekstu.

Na przykład, jeśli OMITTAG YES jest określony w deklaracji SGML (włączając funkcję OMITTAG), a DTD zawiera następujące deklaracje:

<!ELEMENT chapter - - (title, section+)>
<!ELEMENT title o o (#PCDATA)>
<!ELEMENT section - - (title, subsection+)>

następnie ten fragment:

<chapter>Introduction to SGML
<section>The SGML Declaration
<subsection>
...

który pomija dwa <title>znaczniki i dwa </title>znaczniki, reprezentuje prawidłowy znacznik.

Pomijanie tagów jest opcjonalne – ten sam fragment można oznaczyć w ten sposób:

<chapter><title>Introduction to SGML</title>
<section><title>The SGML Declaration</title>
<subsection>
...

i nadal będzie reprezentować prawidłowe znaczniki.

Uwaga: Funkcja OMITTAG nie ma związku z tagowaniem elementów, których zadeklarowana zawartość jest zgodna z EMPTYdefinicją w DTD:

<!ELEMENT image - o EMPTY>

Elementy zdefiniowane w ten sposób nie mają znacznika końcowego, a określenie go w instancji dokumentu skutkowałoby nieprawidłowym znacznikiem. Pod tym względem różni się to składniowo od pustych elementów XML .

SKRÓT

Znaczniki można zastąpić ciągami ograniczników, aby uzyskać zwięzły znacznik, za pomocą funkcji SHORTREF. Ten styl znaczników jest teraz powiązany ze znacznikami wiki , np. dwa znaki równości (==) na początku wiersza to „znacznik początkowy nagłówka”, a dwa kolejne znaki równości (==) to „ tag końcowy nagłówka".

SKRÓT

Języki znaczników SGML, których konkretna składnia umożliwia korzystanie z funkcji SHORTTAG VALUE, nie wymagają, aby wartości atrybutów zawierające tylko znaki alfanumeryczne były ujęte w cudzysłów — albo podwójne " "(LIT) albo pojedyncze ' '(LITA) — aby można było zapisać poprzedni przykład znacznika:

<QUOTE TYPE=example>
  typically something like <ITALICS>this</>
</QUOTE>

Jedną z cech języków znaczników SGML jest „domniemane puste znaczniki”, takie, że pusty znacznik końcowy </>w <ITALICS>this</>„dziedziczy” swoją wartość z najbliższego poprzedniego pełnego znacznika początkowego, który w tym przykładzie jest <ITALICS>(innymi słowy, najbardziej ostatnio otwarty element). Wyrażenie jest zatem równoważne z <ITALICS>this</ITALICS>.

INTERNET

Kolejną cechą jest konstrukcja NET (Null End Tag): <ITALICS/this/, która jest strukturalnie odpowiednikiem <ITALICS>this</ITALICS>.

Inne funkcje

Dodatkowo funkcja SHORTTAG NETENABL IMMEDNET umożliwia skracanie tagów otaczających pustą wartość tekstową, ale zabrania skracania pełnych tagów:

<QUOTE></QUOTE>

można zapisać jako

<QUOTE// 

gdzie pierwszy ukośnik ( / ) oznacza „zamknięcie tagu startowego” (NESTC) włączający NET, a drugi oznacza NET. UWAGA: XML definiuje NESTC za pomocą / , a NET za pomocą > (nawias ostry) — stąd odpowiednia konstrukcja w XML pojawia się jako <QUOTE/> .

Trzecią cechą jest „tekst w tym samym wierszu”, co pozwala na zakończenie elementu znacznika końcem wiersza; szczególnie przydatne w przypadku nagłówków i takich, które wymagają minimalizacji SHORTREF lub DATATAG. Na przykład, jeśli DTD zawiera następujące deklaracje:

<!ELEMENT lines (line*)>
<!ELEMENT line O - (#PCDATA)>
<!ENTITY   line-tagc  "</line>">
<!SHORTREF one-line "&#RE;&#RS;" line-tagc>
<!USEMAP   one-line line>

(a „&#RE;&#RS;” jest ogranicznikiem krótkich odwołań w konkretnej składni), a następnie:

<lines>
first line
second line
</lines>

jest równa:

<lines>
<line>first line</line>
<line>second line</line>
</lines>

Charakterystyka formalna

SGML posiada wiele cech, które wymykały się wygodnemu opisowi w popularnej teorii automatów formalnych i współczesnej technologii parserów z lat 80. i 90. XX wieku. Norma ostrzega w załączniku H:

Notacja grup modeli SGML została celowo zaprojektowana tak, aby przypominała notację wyrażeń regularnych w teorii automatów , ponieważ teoria automatów zapewnia teoretyczną podstawę dla niektórych aspektów pojęcia zgodności z modelem treści. Nie należy zakładać ogólnego zastosowania automatów do modeli treści.

Raport dotyczący wczesnej implementacji parsera dla podstawowego SGML, Amsterdam SGML Parser, zauważa:

gramatyka DTD w SGML musi być zgodna z pojęciem jednoznaczności, które bardzo przypomina warunki LL(1)

i wyszczególnia różne różnice.

Wydaje się, że nie ma ostatecznej klasyfikacji pełnego SGML względem znanej klasy gramatyki formalnej . Klasy wiarygodne mogą obejmować gramatyki przylegające do drzewa i gramatyki adaptacyjne .

XML jest opisywany jako ogólnie analizowalny jak dwupoziomowa gramatyka dla niesprawdzonego XML i potok współprogramów w stylu Conwaya ( lexer , parser , walidator) dla poprawnego XML. Produkcje SGML w standardzie ISO są zgłaszane jako LL(3) lub LL(4). Podzbiory klas XML są zgłaszane jako możliwe do wyrażenia przy użyciu gramatyki W . Według jednego artykułu i prawdopodobnie rozważanego na poziomie zbioru informacji lub drzewa analizy, a nie na poziomie znaku lub ogranicznika:

Klasa dokumentów, które są zgodne z daną gramatykią dokumentu SGML, tworzy język LL(1). ... Same gramatyki dokumentu SGML nie są jednak gramatykami LL(1).

Standard SGML nie definiuje SGML za pomocą formalnych struktur danych, takich jak drzewa parsowania ; jednak dokument SGML jest skonstruowany z zakorzenionego ukierunkowanego grafu acyklicznego (RDAG) fizycznych jednostek pamięci znanych jako „ jednostki ”, który jest analizowany w RDAG jednostek strukturalnych zwanych „elementami”. Wykres fizyczny jest luźno scharakteryzowany jako drzewo jednostek , ale jednostki mogą pojawiać się wielokrotnie. Co więcej, graf struktury jest również luźno scharakteryzowany jako drzewo elementów , ale znaczniki ID/IDREF pozwalają na dowolne łuki.

Wyniki parsowania można również rozumieć jako drzewo danych w różnych notacjach; gdzie dokument jest węzłem głównym, a jednostki w innych notacjach (tekst, grafika) są węzłami podrzędnymi. SGML zapewnia aparaturę do łączenia i adnotowania zewnętrznych jednostek nie korzystających z SGML.

Standard SGML opisuje to w kategoriach map i trybów rozpoznawania (s9.6.1). Każda jednostka i każdy element może mieć skojarzoną notację lub zadeklarowany typ zawartości , który określa rodzaje odwołań i tagów, które będą rozpoznawane w tej encji i elemencie. Ponadto każdy element może mieć skojarzoną mapę ograniczników (i mapę krótkiego odniesienia ), która określa, które znaki są traktowane jako ograniczniki w kontekście. Standard SGML charakteryzuje parsowanie jako maszynę stanów przełączającą między trybami rozpoznawania. Podczas parsowania występuje stos map, które konfigurują skaner , podczas gdy tokenizer odnosi się do trybów rozpoznawania.

Parsowanie obejmuje przechodzenie przez dynamicznie pobierany wykres encji, znajdowanie/sugerowanie tagów i struktury elementów oraz sprawdzanie poprawności tych tagów pod kątem gramatyki. Niezwykłym aspektem SGML jest to, że gramatyka (DTD) jest używana zarówno pasywnie — do rozpoznawania struktur leksykalnych, jak i aktywnie — do generowania brakujących struktur i znaczników, które DTD zadeklarowało jako opcjonalne. Znaczniki końcowe i początkowe można pominąć, ponieważ można je wywnioskować. Ogólnie rzecz biorąc, serię znaczników można pominąć tylko wtedy, gdy w gramatyce istnieje jedna możliwa ścieżka, która je implikuje. To właśnie aktywne użycie gramatyk sprawiło, że konkretne parsowanie SGML było trudne do formalnego scharakteryzowania.

SGML używa terminu walidacja zarówno do rozpoznawania, jak i generowania. XML nie używa gramatyki (DTD) do zmiany map ograniczników lub informowania o trybach analizy i nie pozwala na pominięcie znacznika ; w konsekwencji walidacja XML elementów nie jest aktywna w tym sensie, że walidacja SGML jest aktywna. SGML bez DTD (np. prosty XML), to gramatyka lub język; SGML z DTD to metajęzyk . SGML z deklaracją SGML jest być może metajęzykiem, ponieważ jest to metajęzyk, którego mechanizmem deklaracji jest metajęzyk.

SGML ma abstrakcyjną składnię zaimplementowaną przez wiele możliwych konkretnych składni; jednak nie jest to takie samo zastosowanie jak w abstrakcyjnym drzewie składni i jak w konkretnym drzewie składni . W użyciu SGML składnia konkretna to zestaw określonych ograniczników, podczas gdy składnia abstrakcyjna to zestaw nazw ograniczników. XML Infoset odpowiada bardziej z pojęciem języka programowania składni abstrakcyjnej wprowadzonej przez Johna McCarthy'ego .

Pochodne

XML

W3C XML (Extensible Markup Language) jest profilem (podzbiór) od SGML zaprojektowany, aby ułatwić realizację parsera w porównaniu do pełnego parsera SGML, głównie do użytku w World Wide Web. Oprócz wyłączenia wielu opcji SGML obecnych w składni odniesienia (takich jak pomijanie znaczników i zagnieżdżonych dokumentów podrzędnych) XML dodaje szereg dodatkowych ograniczeń dotyczących rodzajów składni SGML. Na przykład, pomimo włączenia skróconych form tagów SGML, XML nie zezwala na niezamknięte tagi początkowe i końcowe. Opierał się również na wielu dodatkach wprowadzonych przez załącznik WebSGML. XML jest obecnie szerzej używany niż pełny SGML. XML ma lekką internacjonalizację opartą na Unicode . Zastosowania XML obejmują XHTML , XQuery , XSLT , XForms , XPointer , JSP , SVG , RSS , Atom , XML-RPC , RDF/XML i SOAP .

HTML

Chociaż HTML został opracowany częściowo niezależnie i równolegle z SGML, jego twórca, Tim Berners-Lee , zamierzał być aplikacją SGML. Projekt HTML (Hyper Text Markup Language) został zatem zainspirowany tagowaniem SGML, ale ponieważ nie ustalono jasnych wytycznych dotyczących rozszerzania i analizowania, większość rzeczywistych dokumentów HTML nie jest poprawnymi dokumentami SGML. Później HTML został przeformułowany (wersja 2.0), aby być bardziej aplikacją SGML; jednak język znaczników HTML ma wiele funkcji obsługi starszych i wyjątków, które różnią się od wymagań SGML. HTML 4 to aplikacja SGML w pełni zgodna z normą ISO 8879 – SGML.

Statut odrodzenia w 2006 roku Grupy Roboczej HTML Konsorcjum World Wide Web mówi: „Grupa nie zakłada, że ​​parser SGML jest używany do 'klasycznego HTML'”. Chociaż składnia HTML bardzo przypomina składnię SGML z domyślną konkretną składnią odniesienia , HTML5 porzuca wszelkie próby zdefiniowania HTML jako aplikacji SGML, jawnie definiując własne reguły parsowania, które są bardziej zgodne z istniejącymi implementacjami i dokumentami. Definiuje jednak alternatywną serializację XHTML , która jest zgodna z XML, a zatem również z SGML.

OED

Drugie wydanie Oxford English Dictionary (OED) jest w całości oznaczone językiem znaczników opartym na SGML przy użyciu edytora tekstu LEXX .

Trzecia edycja jest oznaczona jako XML.

Inni

Inne języki znaczników dokumentów są częściowo powiązane z SGML i XML, ale — ponieważ nie mogą być analizowane, sprawdzane lub przetwarzane w inny sposób przy użyciu standardowych narzędzi SGML i XML — nie są uważane za języki SGML ani XML; Z Format język znaczników dla nabieranie i dokumentacji jest przykładem.

Kilka nowoczesnych języków programowania obsługuje tagi jako typy tokenów pierwotnych lub teraz obsługuje dopasowywanie wzorców Unicode i wyrażeń regularnych . Przykładem jest język programowania Scala .

Aplikacje

Języki znaczników dokumentów zdefiniowane za pomocą SGML są nazywane przez standard „aplikacjami”; wiele aplikacji SGML sprzed XML było własnością organizacji, które je stworzyły, a zatem były niedostępne w sieci WWW. Poniższa lista dotyczy aplikacji SGML sprzed XML.

  • Text Encoding Initiative (TEI) to konsorcjum akademickie, które projektuje, utrzymuje i rozwija standardy techniczne dla aplikacji do reprezentacji tekstu w formacie cyfrowym.
  • DocBook to język znaczników pierwotnie stworzony jako aplikacja SGML, przeznaczony do tworzenia dokumentacji technicznej; DocBook jest obecnie aplikacją XML.
  • CALS (Continuous Acquisition and Life-cycle Support) to inicjatywa Departamentu Obrony Stanów Zjednoczonych służąca do elektronicznego przechwytywania dokumentów wojskowych oraz łączenia powiązanych danych i informacji.
  • HyTime definiuje zestaw typów elementów zorientowanych na hipertekst, które umożliwiają autorom dokumentów SGML tworzenie prezentacji hipertekstowych i multimedialnych.
  • System EDGAR (Electronic Data-Gathering, Analysis and Retrieval) umożliwia automatyczne zbieranie, walidację, indeksowanie, akceptację i przekazywanie zgłoszeń przez firmy i inne osoby, które są prawnie zobowiązane do składania danych i formularzy informacyjnych w amerykańskiej Komisji Papierów Wartościowych i Giełd (SEK).
  • LinuxDoc . Dokumentacja pakietów dla systemu Linux używała LinuxDoc SGML DTD i Docbook XML DTD.
  • AAP DTD to definicja typu dokumentu dla dokumentów naukowych , zdefiniowana przez Association of American Publishers .
  • ISO 12083 , następca AAP DTP, to międzynarodowy standard SGML do wymiany dokumentów między autorami a wydawcami.
  • SGMLguid był wczesną definicją typu dokumentu SGML stworzoną, rozwiniętą i używaną w CERN .

Wdrożenia open-source

Do znaczących implementacji SGML typu open source należą:

  • ASP-SGML
  • ARC-SGML , przez Standard Generalized Markup Language Users, 1991, język C
  • SGMLS , James Clark, 1993, język C
  • Projekt YAO , Yuan-ze Institute of Technology, Tajwan, z Charlesem Goldfarbem, 1994, obiekt
  • SP autorstwa Jamesa Clarka, język C++

SP i Jade, powiązane procesory DSSSL, są utrzymywane przez projekt OpenJade i są wspólnymi częściami dystrybucji Linuksa. Ogólne archiwum oprogramowania i materiałów SGML znajduje się w SUNET . Oryginalna klasa parsera HTML, w implementacji Javy Sun System, jest parserem SGML o ograniczonych funkcjach, wykorzystującym terminologię i koncepcje SGML.

Zobacz też

Bibliografia

Zewnętrzne linki