091502CC8D7F487BA52A08145ED03720
  • Thomas Pollinger
  • 26.07.2017
  • DE/EN

Root Cause Analysis: "Reference to undeclared entity 'nbsp'."

Wenn man viel mit Rendertags in den Content-Klassen bzw. Templates arbeitet. Ist es interessant, welche Fehlermeldungen manchmal auftauchen. Vor allem wenn man dann merkt, dass die Ursache ca. 40cm vor dem Bildschirm sitzt ;)


Regel 6

Ein Entwickler ist eine Mimose, wenn er selbst einen Fehler gemacht hat, und ein brüllender Löwe, wenn er bei anderen einen Fehler entdeckt. ;) (Albert Einstein).


Meldungen

Severity: Error
Component: Navigation
Category: Application
Source: Reddot.CMS.Rendering.Spots.SpotProcessor.ProcessSpot (:0)
Message:
Locals: Project: {GUID}; ProjectVariant: {GUID}; Language(Page): {GUID}; Page(ID/UUID): {ID}; ContentClass: {GUID}; RenderMode: {Preview|SmartEdit|Publish}; RequestId: {ID}; 
SpotProcessor.ProcessSpot:System.Xml.XmlException: Reference to undeclared entity 'nbsp'. Line 12, position 273.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.HandleGeneralEntityReference(String name, Boolean isInAttributeValue, Boolean pushFakeEntityIfNullResolver, Int32 entityStartLinePos)
   at System.Xml.XmlTextReaderImpl.ResolveEntity()
   at System.Xml.XmlLoader.LoadEntityReferenceNode(Boolean direct)
   at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
   at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at OpenText.WS.MS.Core.Extensions.XmlDocumentExtension.LoadXml(XmlDocument xmlDocument, String xml, Boolean considerNamespaces)
   at OpenText.WS.MS.Cache.Xml.XmlCache.GetXmlDocument(String content, CacheItemPriority priority)
   at Reddot.CMS.Rendering.Spots.XmlSpot.Render(String spotContent, IRenderStream output, IObjectLoadManager objectLoadManager, IPageRenderingContext context, ITagProcessor tagProcessor, TagTools toolsInstance)
   at Reddot.CMS.Rendering.Spots.XmlSpot.Render(String spotContent, IRenderStream output, IObjectLoadManager objectLoadManager, IPageRenderingContext context)
   at Reddot.CMS.Rendering.Spots.SpotProcessor.ProcessSpot(String content, SpotTag spotTag, IRenderStream outputStream)

Ursache

Für diese Meldung ist die Ursache, nicht zulässige Tags oder HTML innerhalb eines RenderSpots <reddot:cms> ... </reddot:cms>. In diesem Beispiel sah das so exemplarisch aus:

<reddot:cms>
  <if>
    <query valuea=".." operator="==" valueb="">
      &nbsp;<htmltext>Ausgabe</htmltext>
    <query>
  </if>
</reddot:cms>

Lösung

Immer darauf achten, dass die Ausgabe innerhalb eines <htmltext>...</htmltext> oder <xmltext>...</xmltext> steht:

<reddot:cms>
  <if>
    <query valuea=".." operator="==" valueb="">
      <htmltext>&nbsp;Ausgabe</htmltext>
    <query>
  </if>
</reddot:cms>

Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.