public void DTDZuweisen(DTD dtd) { foreach (DTDChildElemente child in this._children) { child.DTDZuweisen(dtd); } this._dtd = dtd; }
private void PruefeAlleTestmuster(List <DTDTestmuster> alleMuster, XMLCursorPos cursorPos) { XmlNode aktNode = cursorPos.AktNode; DTDElement element; if (cursorPos.PosAmNode == XMLCursorPositionen.CursorInDemLeeremNode) { element = this._dtd.DTDElementByName(DTD.GetElementNameFromNode(aktNode), false); } else { if (aktNode.OwnerDocument == null || aktNode.OwnerDocument.DocumentElement == null) { return; } if (aktNode == aktNode.OwnerDocument.DocumentElement) { using (List <DTDTestmuster> .Enumerator enumerator = alleMuster.GetEnumerator()) { while (enumerator.MoveNext()) { DTDTestmuster current = enumerator.Current; if (current.ElementName == aktNode.Name) { current.Erfolgreich = true; } } return; } } else { element = this._dtd.DTDElementByName(DTD.GetElementNameFromNode(aktNode.ParentNode), false); } } foreach (DTDTestmuster muster in alleMuster) { if (element == null) { muster.Erfolgreich = false; } else if (!muster.Erfolgreich) { muster.Erfolgreich = this.PasstMusterInElement(muster, element); } } }
public bool IstDerNodeAnDieserStelleErlaubt(XmlNode node) { if (node.ParentNode is XmlDocument) { return(true); } XMLCursorPos cursorPos = new XMLCursorPos(); cursorPos.CursorSetzen(node, XMLCursorPositionen.CursorAufNodeSelbstVorderesTag); DTDTestmuster testMuster = this.CreateTestMuster(DTD.GetElementNameFromNode(node), cursorPos); this.PruefeAlleTestmuster(new List <DTDTestmuster>() { testMuster }, cursorPos); return(testMuster.Erfolgreich); }
public bool IstDerNodeAnDieserStelleErlaubt(XmlNode node) { if (node.ParentNode is XmlDocument) { return(true); } XMLCursorPos xMLCursorPos = new XMLCursorPos(); xMLCursorPos.CursorSetzen(node, XMLCursorPositionen.CursorAufNodeSelbstVorderesTag); string elementNameFromNode = DTD.GetElementNameFromNode(node); DTDTestmuster dTDTestmuster = this.CreateTestMuster(elementNameFromNode, xMLCursorPos); List <DTDTestmuster> list = new List <DTDTestmuster>(); list.Add(dTDTestmuster); this.PruefeAlleTestmuster(list, xMLCursorPos); if (dTDTestmuster.Erfolgreich) { return(true); } return(false); }
private void PruefeAlleTestmuster(List <DTDTestmuster> alleMuster, XMLCursorPos cursorPos) { XmlNode aktNode = cursorPos.AktNode; DTDElement dTDElement; if (cursorPos.PosAmNode == XMLCursorPositionen.CursorInDemLeeremNode) { dTDElement = this._dtd.DTDElementByName(DTD.GetElementNameFromNode(aktNode), false); goto IL_00dd; } if (aktNode.OwnerDocument != null && aktNode.OwnerDocument.DocumentElement != null) { if (aktNode != aktNode.OwnerDocument.DocumentElement) { dTDElement = this._dtd.DTDElementByName(DTD.GetElementNameFromNode(aktNode.ParentNode), false); goto IL_00dd; } foreach (DTDTestmuster item in alleMuster) { if (item.ElementName == aktNode.Name) { item.Erfolgreich = true; } } } return; IL_00dd: foreach (DTDTestmuster item2 in alleMuster) { if (dTDElement == null) { item2.Erfolgreich = false; } else if (!item2.Erfolgreich) { item2.Erfolgreich = this.PasstMusterInElement(item2, dTDElement); } } }
public DTDNodeEditCheck(DTD dtd) { this._dtd = dtd; }
private DTDTestmuster CreateTestMuster(string elementName, XMLCursorPos cursorPos) { XmlNode aktNode = cursorPos.AktNode; DTDTestmuster dtdTestmuster; if (cursorPos.PosAmNode == XMLCursorPositionen.CursorInDemLeeremNode) { dtdTestmuster = new DTDTestmuster(elementName, DTD.GetElementNameFromNode(aktNode)); dtdTestmuster.AddElement(elementName); } else { if (aktNode.ParentNode is XmlDocument) { throw new ApplicationException(ResReader.Reader.GetString("FuerRootElementKeinTestmuster")); } dtdTestmuster = new DTDTestmuster(elementName, DTD.GetElementNameFromNode(aktNode.ParentNode)); for (XmlNode node = aktNode.ParentNode.FirstChild; node != null; node = node.NextSibling) { if (!(node is XmlWhitespace)) { if (node == aktNode) { if (node is XmlComment) { dtdTestmuster.AddElement("#COMMENT"); } else if (this._dtd.DTDElementByName(DTD.GetElementNameFromNode(aktNode), false) != null) { switch (cursorPos.PosAmNode) { case XMLCursorPositionen.CursorVorDemNode: if (elementName == null) { throw new ApplicationException("CreateTestMuster: Löschen darf bei XMLCursorPositionen.CursorVorDemNode nicht geprüft werden!"); } dtdTestmuster.AddElement(elementName); dtdTestmuster.AddElement(DTD.GetElementNameFromNode(aktNode)); break; case XMLCursorPositionen.CursorAufNodeSelbstVorderesTag: case XMLCursorPositionen.CursorAufNodeSelbstHinteresTag: if (elementName != null) { dtdTestmuster.AddElement(elementName); break; } break; case XMLCursorPositionen.CursorInDemLeeremNode: if (elementName == null) { throw new ApplicationException("CreateTestMuster: Löschen darf bei XMLCursorPositionen.CursorHinterDemNode nicht geprüft werden!"); } throw new ApplicationException("CreateTestMuster: CursorInDemLeeremNode can´t be handled at this place!"); case XMLCursorPositionen.CursorInnerhalbDesTextNodes: if (elementName == null) { throw new ApplicationException("CreateTestMuster: Löschen darf bei XMLCursorPositionen.CursorInnerhalbDesTextNodes nicht geprüft werden!"); } if (DTD.GetElementNameFromNode(aktNode) != "#PCDATA") { throw new ApplicationException("CreateTestMuster: CursorInnerhalbDesTextNodes angegeben, aber node.name=" + DTD.GetElementNameFromNode(aktNode)); } dtdTestmuster.AddElement("#PCDATA"); dtdTestmuster.AddElement(elementName); dtdTestmuster.AddElement("#PCDATA"); break; case XMLCursorPositionen.CursorHinterDemNode: if (elementName == null) { throw new ApplicationException("CreateTestMuster: Löschen darf bei XMLCursorPositionen.CursorHinterDemNode nicht geprüft werden!"); } dtdTestmuster.AddElement(DTD.GetElementNameFromNode(aktNode)); dtdTestmuster.AddElement(elementName); break; default: throw new ApplicationException("Unknown XMLCursorPositionen value:" + (object)cursorPos.PosAmNode); } } } else { dtdTestmuster.AddElement(DTD.GetElementNameFromNode(node)); } } } } return(dtdTestmuster); }
public DTDElement DTDElementByNode_(XmlNode node, bool fehlerWennNichtVorhanden) { return(this.DTDElementByNameIntern_(DTD.GetElementNameFromNode(node), fehlerWennNichtVorhanden)); }