Standard Generalized Markup Language

De Standard Generalized Markup Language is voor het definiëren van algemene markup-talen voor documenten. ISO 8879 bijlage A.1 definieert algemene opmaak:

HTML was in theorie een voorbeeld van een SGML-gebaseerde taal tot HTML 5, die toegeeft dat browsers niet kunnen ontleden als SGML en gecodificeerd precies wat ze in plaats daarvan moeten doen.

DocBook SGML en LinuxDoc zijn betere voorbeelden, omdat ze bijna uitsluitend gebruikt werden met de werkelijke SGML gereedschappen.

Standaardversies

SGML is een ISO-norm: "ISO 8879: 1986 Informatie verwerken van tekst en office systemen Standard Generalized Markup Language", waarvan er drie versies:

  • Originele SGML, die in oktober 1986 werd goedgekeurd, gevolgd door een kleine technische rectificatie.
  • SGML, in 1996, het gevolg van een technisch Rectificatie tot uitgebreide naamgeving regels waardoor willekeurige taal en -script markup toevoegen.
  • SGML, in 1998, het gevolg van een technisch Rectificatie betere ondersteuning XML en eisen.

SGML is een onderdeel van een trio van waarmee ISO-normen voor elektronische documenten ontwikkeld door ISO / IEC JTC1 / SC34:

  • SGML gegeneraliseerde markup language
    • SGML werd herwerkt in 1998 in XML, een succesvolle profiel van SGML. Volledige SGML wordt zelden gevonden of gebruikt worden in nieuwe projecten.
  • DSSSL documentverwerking en styling taal, gebaseerd op Scheme.
    • DSSSL werd herwerkt in W3C XSLT en XSL-FO, die een XML-syntaxis te gebruiken. Tegenwoordig wordt DSSSL zelden gebruikt in nieuwe projecten, afgezien van Linux documentatie.
  • HyTime gegeneraliseerde hypertext en planning.
    • HyTime werd gedeeltelijk herwerkt in W3C XLink. HyTime wordt zelden gebruikt in nieuwe projecten.

SGML wordt ondersteund door verschillende technische rapporten, met name

  • ISO / IEC TR 9573 - Informatieverwerking - SGML ondersteunende faciliteiten - Technieken voor het gebruik van SGML
    • Deel 13: Openbare entiteit voor wiskunde en wetenschap zet
      • In 2007 heeft de W3C MathML werkgroep ingestemd met het onderhoud van deze entiteit sets aannemen.

Geschiedenis

SGML afstammen van IBM's Generalized Markup Language, die Charles Goldfarb, Edward Mosher en Raymond Lorie ontwikkeld in de jaren 1960. Goldfarb, redacteur van de internationale standaard, bedacht de "GML" term met behulp van hun achternaam initialen. De syntax van SGML dichter bij de CACAO formaat. Als document opmaaktaal, SGML werd oorspronkelijk ontworpen om het delen van de machine leesbare grote project documenten in de regering, de wet, en de industrie mogelijk te maken. Veel van dergelijke documenten moeten tientallen jaren leesbaar blijven een lange tijd in het gebied van de informatietechnologie. SGML werd ook uitgebreid door het leger en de ruimtevaart, technische referentie, en industriële uitgeverijen toegepast. De komst van de XML-profiel heeft SGML geschikt voor wijdverbreide toepassing voor kleinschalige, algemeen gebruik gemaakt.

Geldigheid document

SGML definieert twee soorten validiteit. Volgens de herziene Algemene definities van de ISO 8879:

Een type-geldig SGML document wordt gedefinieerd door de norm als

Een tag-geldig SGML document wordt bepaald door de norm als

Terminologie

Tag-validiteit werd geïntroduceerd in SGML naar XML-documenten die het mogelijk maakt zonder verklaring DOCTYPE, maar die kan worden ontleed zonder grammatica of documenten die een DOCTYPE verklaring dat geen XML Infoset bijdragen om het document maakt moet ondersteunen. De norm noemt dit volledig gelabeld. Integraal opgeslagen weerspiegelt de XML vereiste elementen eindigen in dezelfde entiteit waarin ze begonnen. Verwijzing gratis weerspiegelt de HTML-eis die entiteit referenties zijn voor speciale tekens en geen markup bevatten. SGML geldigheid commentaar, met name commentaar dat werd gemaakt vóór 1997, of dat zich niet bewust is van SGML, beslaat type validiteit alleen.

De SGML nadruk op geldigheid ondersteunt de eis voor gegeneraliseerde markup dat de opmaak streng moeten zijn.

Syntaxis

Een SGML document kan uit drie delen:

  • de SGML Declaration,
  • de proloog, met daarin een DOCTYPE verklaring bij de verschillende markup verklaringen die samen een Document Type Definition, en
  • de instantie zelf, die een bovenste element en de inhoud ervan.

Een SGML document kan worden samengesteld uit vele entiteiten. In SGML, kan de entiteiten en element types die in het document worden vermeld met een DTD, de verschillende karakter sets, kenmerken, begrenzer sets en trefwoorden zijn vastgelegd in de Verklaring van SGML tot de concrete syntax van het document te maken.

Hoewel volledige SGML laat impliciete markup en een aantal andere soorten labels, de XML-specificatie luidt als volgt:

Voor inleidende informatie op een eenvoudige, moderne SGML syntax, zie XML. Het volgende materiaal concentreert zich op functies die niet in XML en het is niet een uitgebreide samenvatting van SGML syntax.

Optionele functies

SGML generaliseert en ondersteunt een breed scala van markup talen zoals gevonden in het midden van de jaren 1980. Deze varieerden van bruuske Wiki-achtige syntaxis naar RTF-achtige haakjes talen naar HTML-achtige matching-tag talen. SGML deed dit door een relatief eenvoudige standaard referentie beton syntax uitgebreid met een groot aantal optionele functies die kunnen worden ingeschakeld in de Verklaring van SGML. Niet elke SGML parser kan elke SGML document noodzakelijkerwijs verwerken. Omdat aangiftesysteem elke processor kunnen worden vergeleken SGML verklaring van het document is het altijd mogelijk om te weten of een document wordt ondersteund door een bepaalde processor.

Veel SGML kenmerken betrekking hebben op minimalisatie opmaak. Andere kenmerken hebben betrekking op gelijktijdige markup, te koppelen van de verwerking van attributen, en inbedding SGML documenten binnen SGML documenten.

De notie van aanpasbare functies was niet geschikt voor het web gebruik, dus een doel van XML was om optionele functies zoveel mogelijk te beperken. Echter welgevormdheidsregels XML kan niet steunen Wiki-achtige talen, waardoor ze ongestandaardiseerde en moeilijk te integreren met niet-tekst informatiesystemen.

Concrete en abstracte syntaxis

De gebruikelijke SGML betonnen syntax lijkt op dit voorbeeld, dat is de standaard HTML beton syntax:

SGML geeft een abstracte syntax die in veel verschillende soorten beton syntax kunnen worden geïmplementeerd. Hoewel de markup norm gebruikt hoekijzers als start- en eind- tag scheidingstekens een SGML document, is het mogelijk om andere tekens voorzien in een geschikte betonnen syntax wordt gedefinieerd in SGML definitie van het document. Zo kan een SGML interpreter worden geprogrammeerd ontleden GML, waarbij de labels worden gescheiden door een dubbele punt linker en een rechter punt dus een: e prefix geeft een eindmarkering :. Volgens de referentie-syntax, wordt letter geval niet onderscheiden tag namen, waardoor de drie tags: ,, en gelijkwaardig zijn ..

Markup Minimalisatie

SGML heeft functies voor het verminderen van het aantal tekens nodig om markeren van een document, dat moet worden ingeschakeld in de Verklaring van SGML. SGML processors hoeven niet steunen elke beschikbare functie, waardoor applicaties om vele soorten van onbedoelde markup omissies tolereren; echter, SGML systemen meestal intolerant zijn van ongeldige structuren. XML is intolerant syntax omissies, en niet een DTD ter validatie vereisen.

OMITTAG

Zowel start-tags en einde-tags kunnen worden weggelaten uit een document bijvoorbeeld, op voorwaarde:

  • de functie OMITTAG is ingeschakeld in de Verklaring van SGML,
  • de DTD geeft aan dat de labels mogen worden weggelaten,
  •  het element heeft geen verband vereiste attributen, en
  • de tag kan ondubbelzinnig worden afgeleid door de context.

Bijvoorbeeld, als OMITTAG YES is opgegeven in de Verklaring van SGML, en de DTD bevat de volgende verklaringen:

dan is dit fragment:

waarbij twee markeringen en twee markeringen weggelaten, zouden valide markup vertegenwoordigen.

Merk ook op dat het weglaten van labels is optioneel - hetzelfde fragment kon worden gelabeld als volgt uit:


en zou nog steeds vertegenwoordigen valide markup.

Opmerking: De OMITTAG functie staat los van de tagging van elementen waarvan de aangegeven gehalte is zoals gedefinieerd in de DTD:

Elementen gedefinieerd als deze geen einde tag, en het opgeven van een in het document geval zou resulteren in ongeldige markup. Dit is syntactisch anders dan XML lege elementen in dit verband.

SHORTREF

Tags kunnen worden vervangen scheidingsteken snaren, een terser markup, via de functie SHORTREF. Deze markup stijl is nu gekoppeld aan wikitekst, bv waarbij twee is-tekens, aan het begin van een lijn, zijn de "kop start-tag", plus twee tekens daarna de "post end-tag".

SHORTTAG

SGML markup talen waarvan concreet syntax maakt het mogelijk de functie SHORTTAG WAARDE, hoeft attribuutwaarden met alleen alfanumerieke tekens niet te worden omsloten door aanhalingstekens of dubbele of enkele, zodat de vorige markup voorbeeld zou kunnen worden geschreven:

Een kenmerk van SGML markup-talen is de "aanmatigende lege tagging", zodanig dat het lege doel tag in "erft" de waarde van het dichtstbijzijnde voorgaande volledige start-tag, die in dit voorbeeld is. De expressie is dus gelijk aan.

NETTO

Een ander kenmerk is het NET constructie :, die structureel gelijk aan.

Andere mogelijkheden

Daarnaast is de functie SHORTTAG NETENABL IMMEDNET kunt verkorten labels rond een lege tekst waarde, maar verbiedt het verkorten vol tags:

kan worden geschreven als:

Waarbij de eerste schuine streep staat voor de NET-inschakelen "start-tag in de buurt", en de tweede schuine streep staat voor de NET. OPMERKING: XML definieert NESTC met een / en NET met & gt; vandaar de bijbehorende constructie in XML weergegeven als & lt; QUOTE / & gt ;.

De derde functie is 'tekst op dezelfde lijn', waardoor een markup item dat moet worden afgesloten met een line-end; vooral handig voor koppen en dergelijke, die met behulp van SHORTREF of DATATAG minimaliseren. Als bijvoorbeeld de DTD omvat de volgende verklaringen:

, dan:

is gelijk aan:

Formele karakterisering

SGML heeft vele functies die handig beschrijving getart met de populaire formele automaten theorie en de hedendaagse parser technologie van de jaren 1980 en de jaren 1990. De standaard waarschuwt in bijlage H:

Een verslag over een vroege implementatie van een parser voor basis SGML, de Amsterdamse SGML parser, notities

en specificeert verschillende verschillen.

Er lijkt geen definitieve indeling van volledige SGML zijn tegen een bekende klasse van formele grammatica. Plausibel klassen kunnen omvatten boom aangrenzende grammatica en adaptieve grammatica.

XML wordt beschreven als algemeen parsable als een twee-niveau grammatica voor niet-gevalideerde XML en Conway stijl pijplijn van coroutines voor geldige XML. De SGML producties in de ISO-norm worden gerapporteerd LL of LL te zijn. XML-class subsets worden gerapporteerd expressie worden met een W-grammatica. Volgens een krant, en waarschijnlijk beschouwd op een set informatie of ontleden boom niveau in plaats van een personage of begrenzer niveau:

De SGML standaard niet SGML definieert formele gegevensstructuren, zoals ontleedbomen echter een SGML document is vervaardigd van een geworteld gerichte acyclische grafiek fysieke opslageenheden bekend als "eenheden", die wordt ontleed in een RDAG structuureenheden bekende als "elementen". De fysieke grafiek is losjes gekarakteriseerd als een entiteit boom, maar entiteiten kunnen meerdere malen verschijnen. Bovendien is de constructie grafiek ook losjes gekarakteriseerd als element boom, maar de ID / IDREF markup maakt arbitraire bogen.

De resultaten van parsing kan ook worden opgevat als een data structuur in verschillende notaties; waar het document is de wortel knooppunt, en entiteiten in andere notaties zijn kind knooppunten. SGML een inrichting voor het koppelen van en annoteren externe niet-SGML entiteiten.

De SGML norm beschrijft in termen van kaarten en modes erkenning. Elke entiteit en elk element kan een bijbehorende notatie of opgegeven gehalte type, dat de soorten referenties en labels die zullen worden erkend in die entiteit en element bepaalt hebben. Ook kan elk element een bijbehorend begrenzer kaart, die bepaalt welke tekens worden behandeld als scheidingstekens in context. De SGML standaard karakteriseert parsing als een toestand machine schakelen tussen modi erkenning. Tijdens ontleden, er een stapel kaarten die de scanner configureren terwijl tokenizer betreft de herkenningsmodi.

Parsing omvat het doorkruisen van de dynamisch teruggehaald entiteit grafiek, vinden / impliceert labels en het element structuur, en valideren van die tags tegen de grammatica. Een ongebruikelijk aspect van SGML is dat de grammatica wordt gebruikt, zowel passief om lexicale structuren te herkennen, en actief ontbrekende structuren en tags die de DTD optionele heeft verklaard te genereren. Start- en eind-tags kunnen worden weggelaten, omdat ze kunnen worden afgeleid. Losjes kan een reeks labels alleen worden weggelaten indien er één mogelijke weg in de grammatica te impliceren. Het was deze actief gebruik van de grammatica dat concrete SGML parsing moeilijk om formeel te karakteriseren gemaakt.

SGML gebruikt de term validatie voor zowel herkenning en generatie. XML is niet de grammatica gebruiken om scheidingsteken kaarten te wisselen of om de parse modi te informeren, en niet nalaten tag toe; bijgevolg XML validatie elementen niet actief is in de zin dat SGML validatie actief. SGML zonder DTD, is een grammatica of een taal; SGML met een DTD is een metataal. SGML met een SGML verklaring is misschien een meta-metataal, want het is een metataal wiens verklaring mechanisme is een metataal.

SGML heeft een abstracte syntax geïmplementeerd door vele mogelijke betonnen syntaxis dit echter niet hetzelfde gebruik als een abstracte syntaxboom en als concreet syntaxboom. In de SGML gebruik, een betonnen syntax is een reeks specifieke afbakeningen, terwijl de abstracte syntax is de verzameling van namen voor de scheidingstekens. De XML Infoset meer overeenkomt met de programmeertaal begrip abstracte syntax geïntroduceerd door John McCarthy.

Derivaten

XML

De W3C XML is een profiel van SGML om de uitvoering van de parser in vergelijking met een volledige SGML parser verlichten vooral voor gebruik op het World Wide Web. Naast uitschakelen SGML vele mogelijkheden in de referentie XML syntax onderhavige voegt een aantal bijkomende beperkingen op het soort SGML syntax. Bijvoorbeeld, ondanks waardoor SGML verkorte tag vormen, XML niet unclosed begin of eind tags toe te staan. Zij beriep zich ook op veel van de toevoegingen die de WebSGML bijlage. XML momenteel wordt meer gebruikt dan de volledige SGML. XML heeft lichtgewicht internationalisering op basis van Unicode. Toepassingen van XML bevatten XHTML, XQuery, XSLT, XForms, XPointer, JSP, SVG, RSS, Atom, XML-RPC, RDF / XML en SOAP.

HTML

Terwijl HTML gedeeltelijk onafhankelijk en parallel met SGML werd ontwikkeld, de maker Tim Berners-Lee, de bedoeling is om een ​​toepassing van SGML zijn. Het ontwerp van de HTML werd daarom geïnspireerd door SGML tagging, maar omdat er geen duidelijke richtlijnen uitbreiding en parsing werden opgericht, meest actuele HTML-documenten zijn niet geldig SGML documenten. Later HTML werd geformuleerd om meer van een SGML applicatie echter de HTML opmaaktaal vele legacy- en buitenge- hanteren die afwijken van de eisen SGML. HTML 4 is een SGML applicatie die volledig voldoet aan de ISO 8879 - SGML.

Het handvest voor de onlangs nieuw leven ingeblazen World Wide Web Consortium HTML Working Group zegt: "de Groep zal er niet van uitgaan dat een SGML parser wordt gebruikt voor 'classic HTML'". Hoewel HTML-syntax lijkt SGML syntax met de standaard referentie beton syntax, HTML5 afziet van elke poging om HTML te definiëren als een SGML toepassing, expliciet definiëren van een eigen parsing regels die beter aansluiten bij de bestaande implementaties en documenten. Wel, definieert een alternatieve XHTML rangschikking, die voldoet aan XML en dus SGML ook.

OED

De tweede editie van de Oxford Engels Woordenboek is geheel gemarkeerd met een SGML-gebaseerde opmaaktaal.

De derde editie toe is opgemaakt als XML.

Anderen

Andere document markup talen zijn deels gerelateerd aan SGML en XML, maar omdat ze niet kunnen worden ontleed of gevalideerd of andere wijze bewerkt met behulp van standaard SGML en XML tools die ze niet beschouwd ofwel SGML of XML talen; de Z-Format opmaaktaal voor zetwerk en documentatie is een voorbeeld.

Meerdere moderne programmeertalen labels te ondersteunen als primitieve soorten token, of nu ondersteunen Unicode en reguliere expressie patroon-matching. Een voorbeeld is de Scala programmeertaal.

Toepassingen

Document opmaaktalen gedefinieerd met behulp van SGML worden "toepassingen" door de standaard; vele pre-XML SGML toepassingen waren eigendom is van de organisaties die hen dus niet beschikbaar in het World Wide Web ontwikkeld en. De volgende lijst is van pre-XML SGML toepassingen.

  • TEI is een academisch consortium dat ontwerpt, onderhoudt en ontwikkelt technische normen voor digitale-formaat tekstuele representatie toepassingen.
  • DocBook is een opmaaktaal die oorspronkelijk gemaakt als een SGML applicatie ontwikkeld voor het schrijven van technische documentatie; DocBook is momenteel een XML-applicatie.
  • CALS is een Amerikaanse ministerie van Defensie initiatief voor het elektronisch vastleggen van militaire documenten en voor het koppelen van gerelateerde gegevens en informatie.
  • EDGAR systeem effecten geautomatiseerd verzamelen, valideren, indexering, acceptatie en het doorsturen van de inzendingen, door bedrijven en anderen, die wettelijk verplicht zijn om gegevens en informatie formulieren indienen bij de US Securities and Exchange Commission.
  • LinuxDoc. Documentatie voor Linux-pakketten heeft de LinuxDoc SGML DTD en DocBook XML DTD gebruikt.

Open source-implementaties

Belangrijke open source implementaties van SGML hebben opgenomen:

  • ASP-SGML
  • ARC-SGML, Standard Generalized Markup Language gebruikers, 1991, C taal
  • Sgmls, door James Clark, 1993, C taal
  • Project YAO, door Yuan-ze Institute of Technology, Taiwan, met Charles Goldfarb, 1994 object
  • SP door James Clark, C ++ taal

SP en Jade, de bijbehorende DSSSL processors, worden onderhouden door de OpenJade project, en zijn gemeenschappelijke delen van Linux distributies. Een algemene archief van SGML software en materialen woont bij SUNET. De oorspronkelijke HTML-parser klasse, in uitvoering van Java Zon System, is een beperkte functies SGML parser, met behulp van SGML terminologie en concepten.

(0)
(0)
Commentaren - 0
Geen commentaar

Voeg een reactie

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tekens over: 3000
captcha