Partilhar via


Efeito de namespace na expansão de referência de entidade para novos nós que contêm elementos e atributos

Como o conteúdo de uma declaração de entidade pode conter quase tudo, há uma possibilidade de que o conteúdo possa conter um elemento como <!ENTITY aname "<elem>test</elem>">.

Quando o XML é analisado, &aname; não é expandido com seu conteúdo de substituição no momento da análise. A expansão do XML não é feita porque a resolução do namespace para o elemento não pode ocorrer até que o nó seja colocado no documento. Até esse momento, não há conhecimento de qual namespace está no escopo. Quando o nó é colocado no documento, ocorre a resolução do namespace e o conteúdo da entidade resultante é analisado em seus nós apropriados.

Nota

Uma vez que a expansão ocorre em um nó de referência de entidade recém-criado, ela nunca mais ocorre. Portanto, os namespaces usados no texto de substituição para o elemento são vinculados no momento em que o nó pai é definido. No entanto, o namespace pode ser alterado para nós de referência de entidade existentes quando você os remove e insere em outro lugar ou em nós de referência de entidade que são clonados com o método CloneNode.

Consulte também