You are on page 1of 5

RECDOMLevel119981001

Nota:EstedocumentoespartedeunatraduccinalcastellanodelaRecomendacindelW3C
"DocumentObjectModel(DOM)Level1"(msinformacin).Puedeconsultarlaversinoriginaldel
mismo.Paracualquiercomentarioocorreccinacercadelatraduccinpngaseencontactoconel
traductorenjrpozo@conclase.net.Graciasporsucolaboracin.
VaseelAvisodecopyrightdelatraduccin.

QueselModelodeObjetosdelDocumento?
Editores
JonathanRobie,TexcelResearch

Introduccin
ElModelodeObjetosdelDocumento(DOM)esunainterfazdeprogramacindeaplicaciones(API)para
documentosHTMLyXML.Definelaestructuralgicadelosdocumentosyelmodoenqueseaccedey
manipulaundocumento.EnlaespecificacindelDOM,eltrmino"documento"seutilizaenunsentido
amplio.XMLseutilizacadavezmscomounmediopararepresentarmuchasclasesdiferentesde
informacinquepuedeseralmacenadaensistemasdiversos,ymuchadeestainformacinsevera,en
trminostradicionales,mscomodatosquecomodocumentos.Sinembargo,XMLpresentaestosdatos
comodocumentos,ysepuedeusarelDOMparamanipularestosdatos.

ConelModelodeObjetosdelDocumentolosprogramadorespuedenconstruirdocumentos,navegarporsu
estructura,yaadir,modificaroeliminarelementosycontenido.Sepuedeaccederacualquiercosaquese
encuentreenundocumentoHTMLoXML,ysepuedemodificar,eliminaroaadirusandoelModelode
ObjetosdelDocumento,salvoalgunasexcepciones.Enparticular,annosehanespecificadolasinterfaces
DOMparalossubconjuntosinternosyexternosdeXML.

SiendounaespecificacindelW3C,unodelosobjetivosimportantesdelModelodeObjetosdelDocumento
esproporcionaruninterfazestndardeprogramacinquepuedautilizarseenunaampliavariedadde
entornosyaplicaciones.ElDOMsehadiseadoparaserutilizadoencualquierlenguajedeprogramacin.
ParaproporcionarunaespecificacindelasinterfacesDOMprecisaeindependientedellenguaje,hemos
decididodefinirlasespecificacionesenOMGIDL,segnsedefineenlaespecificacinCORBA2.2.
AdemsdelaespecificacinOMGIDL,proporcionamoscorrespondenciasconloslenguajesJavay
ECMAScript(unlenguajedescriptsindustrialbasadoenJavaScriptyJScript).Nota:OMGIDLseusa
nicamentecomounmediodeespecificarlasinterfacesindependientedelaplataformaydellenguaje.Se
podranhaberutilizadootrosIDLs.Engeneral,losIDLssediseanparaentornosdecomputacin
especficos.ElModelodeObjetosdelDocumentopuedeimplementarseencualquierentornode
computacin,ynorequierelaslibrerasdeenlazadodeobjetos(objectbindingruntimes)generalmente
asociadascontalesIDLs.

LoqueelModelodeObjetosdelDocumentoes
ElDOMesunAPIdeprogramacinparadocumentos.Guardaunagransimilitudconlaestructuradel
documentoalquemodeliza.Porejemplo,considreseestatabla,tomadadeundocumentoHTML:

<TABLE>
<TBODY>
<TR>
<TD>ShadyGrove</TD>
<TD>Aeolian</TD>
</TR>
<TR>
<TD>OvertheRiver,Charlie</TD>
<TD>Dorian</TD>
</TR>
</TBODY>
</TABLE>

ElDOMrepresentaestatabladeestemodo:

RepresentacindelDOMdelatabladelejemplo

EnelDOM,losdocumentostienenunaestructuralgicaqueesmuyparecidaaunrbol.Paraserms
precisos,esmsbiencomoun"bosque"ouna"arboleda",quepuedecontenermsdeunrbol.Sinembargo,
elDOMnoespecificaquelosdocumentosdebanserimplementadoscomounrbolounbosque,nitampoco
especificacmodebenimplementarselasrelacionesentreobjetos.ElDOMesunmodelolgicoquepuede
implementarsedecualquiermaneraqueseaconveniente.Enestaespecificacin,usamoseltrminomodelo
deestructuraparadescribirlarepresentacinenformaderboldeundocumento,evitandolautilizacinde
trminostalescomo"rbol"o"bosque"paraevitarlaimplicacindeunaimplementacinenparticular.Una
propiedadimportantedelosmodelosdeestructuradelDOMessuisomorfismoestructural:sidos
implementacionescualesquieradelModelodeObjetosdelDocumentoseusanparacrearunarepresentacin
delmismodocumento,ambascrearnelmismomodelodeestructura,conexactamentelosmismosobjetosy
relaciones.

Seeligielnombre"ModelodeObjetosdelDocumento"porqueesun"modelodeobjetos"enelsentido
tradicionaldeldiseoorientadoaobjetos:losdocumentossemodelizanusandoobjetos,yelmodelo
comprendenosolamentelaestructuradeundocumento,sinotambinelcomportamientodeundocumentoy
delosobjetosdeloscualessecompone.Enotraspalabras,losnodosdeldiagramaanteriornorepresentan
unaestructuradedatos,sinoquerepresentanobjetos,loscualespuedentenerfuncioneseidentidad.Como
modelodeobjetos,elDOMidentifica:

lasinterfacesyobjetosusadospararepresentarymanipularundocumento
lasemnticadeestasinterfacesyobjetos,incluyendocomportamientoyatributos
lasrelacionesycolaboracionesentreestasinterfacesyobjetos

Tradicionalmente,laestructuradelosdocumentosSGMLseharepresentadomedianteunmodelodedatos
abstractos,noconunmodelodeobjetos.Enunmodelodedatosabstractos,elmodelosecentraenlosdatos.
Enloslenguajesdeprogramacinorientadosaobjetos,losdatosseencapsulanenobjetosqueocultanlos
datos,protegindolosdesumanipulacindirectadesdeelexterior.Lasfuncionesasociadasconestosobjetos
determinancmopuedenmanipularselosobjetos,ysonpartedelmodelodeobjetos.
ElModelodeObjetosdelDocumentoconsisteactualmentededospartes,elNcleodelDOMyelDOM
HTML.ElNcleodelDOMrepresentalafuncionalidadusadaparalosdocumentosXML,ytambinsirve
debaseparaelDOMHTML.UnaimplementacinconformedelDOMdebeimplementartodaslas
interfacesfundamentalesdelcaptulosobreelNcleoconlasemnticadefinida.Adems,debeimplementar
obienelDOMHTMLobienlasinterfacesextendidas(XML),oambas,conlasemnticadefinida.

LoqueelModelodeObjetosdelDocumentonoes
SehaincluidoestaseccinparadarunanocinmsprecisadelDOMdistinguindolodeotrossistemasque
aparentementepuedenresultarsimilaresal.

AunqueelModelodeObjetosdelDocumentoharecibidounagraninfluenciadel"HTMLDinmico",
enelNivel1noimplementatodoel"HTMLDinmico".Enparticular,annosehandefinidolos
eventos.ElNivel1sehadiseadoparaestablecerunfundamentoslidoparaestaclasede
funcionalidad,pormediodeunmodelodelpropiodocumentoalavezrobustoyflexible.
ElModelodeObjetosdelDocumentonoesunaespecificacinbinaria.LosprogramasDOMescritos
enelmismolenguajeserncompatiblesentreplataformasaniveldecdigofuente,peroelDOMno
defineningunaformadeinteroperabilidadbinaria.
ElModelodeObjetosdelDocumentonoesunamaneradeofrecerobjetospersistentesparaXMLo
HTML.EnlugardeespecificarcmopuedenrepresentarseobjetosenXML,elDOMespecificacmo
serepresentanlosdocumentosXMLyHTMLcomoobjetos,demodoquepuedanserutilizadospor
programasorientadosaobjetos.
ElModelodeObjetosdelDocumentonoesunconjuntodeestructurasdedatos,esunmodelode
objetosqueespecificainterfaces.Aunqueestedocumentocontienediagramasquemuestranrelaciones
padre/hijo,stassonrelacioneslgicasdefinidasporlasinterfacesdeprogramacin,no
representacionesdeningunaestructurainternadedatosparticular.
ElModelodeObjetosdelDocumentonodefine"lasemnticainternareal"delXMLodelHTML.La
semnticadeestoslenguajesestdefinidaporlasRecomendacionescorrespondientesdelW3C.El
DOMesunmodelodeprogramacindiseadopararespetarestassemnticas.ElDOMnotiene
ningunaconsecuenciaenelmodoenqueseescribenlosdocumentosXMLyHTMLcualquier
documentoquepuedaescribirseconestoslenguajespuedeserrepresentadoenelDOM.
ElModelodeObjetosdelDocumento,apesardesunombre,noesuncompetidordelmodelode
objetosCOM.COM,aligualqueCORBA,esunamaneraindependientedellenguajedeespecificar
interfacesyobjetoselDOMesunconjuntodeinterfacesyobjetosdiseadoparamanipular
documentosHTMLyXML.ElDOMsepuedeimplementarusandosistemasindependientesdel
lenguajecomoCOMoCORBAtambinsepuedeimplementarusandoenlacesespecficosdel
lenguaje,comolosespecificadosenestedocumentoparaJavayECMAScript.

DedndevinoelModelodeObjetosdelDocumento
ElDOMseorigincomounaespecificacinparapermitirquelosprogramasJavaylosscriptsdeJavaScript
fueranportablesentrelosnavegadoresweb.El"HTMLDinmico"fueelascendienteinmediatodelModelo
deObjetosdelDocumento,yoriginalmentesepensabaenlprincipalmenteentrminosdenavegadores.Sin
embargo,cuandoseformelGrupodeTrabajoDOMenelW3C,tambinseunieronalcompaasdeotros
mbitos,incluyendolosdelaedicinyarchivodedocumentosHTMLyXML.Variasdeestascompaas
habantrabajadoconSGMLantesdequesehubieradesarrolladoelXMLcomoresultadodeello,elDOM
harecibidoinfluenciasdelos"Groves"deSGMLydelestndarHyTime.Algunasdeestascompaas
tambinhabandesarrolladosuspropiosmodelosdeobjetosparadocumentosafindeproporcionarunAPI
paraloseditoresolosarchivosdedocumentosSGML/XML,yestosmodelosdeobjetostambinhan
influidoenelDOM.

LasentidadesyelncleodelDOM
EnlasinterfacesfundamentalesdelDOMnohayobjetosquerepresentenentidades.Lasreferencias
numricasdecaracteresylasreferenciasaentidadespredefinidasenHTMLyenXMLsonreemplazadaspor
elcarcterindividualqueconstituyelasustitucindelaentidad.Porejemplo,en:

<p>Thisisadog&amp;acat</p>

el"&amp"serreemplazadoporelcarcter"&",yeltextodelelementoPformarunanicasecuencia
continuadecaracteres.Debidoaquelasreferenciasnumricasdecaracteresylasentidadespredefinidasno
sonreconocidascomotalesenlasseccionesCDATA,nienloselementosSCRIPTySTYLEdeHTML,no
sonreemplazadasporelcarcterindividualalqueaparantementeserefieren.Sielejemploanteriorestuviera
contenidoenunaseccinCDATA,el"&amp"noserareemplazadopor"&"yel<p>tampocosera
reconocidocomounaetiquetainicial.Larepresentacindeentidadesgenerales,tantointernascomo
externas,estdefinidadentrodelasinterfacesextendidas(XML)delNivel1delaespecificacin.

Nota:CuandolarepresentacinDOMdeundocumentoseaserializadacomotextoXMLoHTML,las
aplicacionesnecesitarncomprobarcadacarcterdelosdatosdetextoparaversinecesitaserconvertidoen
unasecuenciadeescapeusandounaentidadnumricaopredefinida.Delocontrariosepodraobtener
HTMLoXMLinvlido.Adems,lasimplementacionesdeberanserconscientesdelhechodequela
serializacinenunacodificacindecaracteres("charset")quenocubracompletamentelaISO10646puede
fallarsihaycaracteresenelcdigooenlasseccionesCDATAquenoestnpresentesenesacodificacin.

InterfacesDOMeImplementacionesDOM
ElDOMespecificainterfacesquepuedenutilizarseparamanipulardocumentosXMLoHTML.Es
importantedarsecuentadequeestasinterfacessonunaabstraccin.Comparablesalas"clasesdebase
abstractas"deC++,constituyenunmediodeespecificarunaformadeaccederymanipularlarepresentacin
internaqueunaaplicacinhacedeundocumento.Lasinterfacesnoimplicanunaimplementacinconcreta
enparticular.CadaaplicacinDOMeslibredemantenerlosdocumentossegnunarepresentacin
convenientecualquiera,siempreycuandosoportelasinterfacesmostradasenestaespecificacin.Algunas
implementacionesdelDOMsernprogramasexistentesqueusenlasinterfacesdelDOMparaaccedera
programasescritosmuchoantesdequeexistieralaespecificacindelDOM.Portanto,elDOMseha
diseadoparaevitardependenciasdelaimplementacin.Enparticular,

1.LosatributosdefinidosenelIDLnoimplicanobjetosconcretosquedebantenermiembrosdedatos
especficosenlascorrespondenciasconcadalenguaje,setransformanenparesdefunciones
get()/set(),noenunmiembrodedatos.(Losatributosdeslolecturaslotendrnunafuncinget().)
2.LasaplicacionesDOMpuedenproporcionarinterfacesadicionalesyobjetosquenoseencuentrenen
estaespecificacinyseguirsiendoconsiderardascomoconformesconelDOM.
3.Debidoaqueespecificamosinterfaces,ynolosobjetosrealesquedebensercreados,elDOMno
puedesaberaquconstructoresllamarunaimplementacin.Engeneral,losusuariosdelDOM
llamarnamtodoscreateXXX()delaclaseDocumentparacrearestructurasdeldocumento,ylas
implementacionesdelDOMcrearnsuspropiasrepresentacionesinternasdedichasestructurasensus
implementacionesdelasfuncionescreateXXX().

LimitacionesdelNivel1
LaespecificacindelNivel1delDOMselimitadeliberadamenteaaquellosmtodosnecesariospara
representarymanipularlaestructurayelcontenidodedocumentos.ElplanparalosfuturosNivelesdela
especificacindelDOMesproporcionar:

1.Unmodelodeestructuraparaelsubconjuntointernoyelsubconjuntoexterno.
2.Validacincontraunesquema.
3.Controlpararepresentardocumentospormediodehojasdeestilo.
4.Controldeacceso.
5.Seguridaddehilosdeprocesoothreads.
6.Eventos.

You might also like