public ISourceLineInfo BuildLineInfo() {
bool onAttribute = (nodeType == XPathNodeType.Attribute);
if (lastLineInfo != null && !onAttribute) {
Debug.Assert(
Uri == lastLineInfo.Uri &&
StartLine == lastLineInfo.StartLine &&
StartPos == lastLineInfo.StartPos &&
EndLine == lastLineInfo.EndLine &&
EndPos == lastLineInfo.EndPos
);
return lastLineInfo;
}
SourceLineInfo lineInfo = new SourceLineInfo(Uri, StartLine, StartPos, EndLine, EndPos);
if (!OnTextNode && !onAttribute) {
lastLineInfo = lineInfo;
}
return lineInfo;
}
public void SaveExtendedLineInfo(XsltInput input) { elemNameLi = new SourceLineInfo( lineInfo.Uri, lineInfo.StartLine, lineInfo.StartPos + 1, // "<" lineInfo.StartLine, lineInfo.StartPos + 1 + elemNameLength ); if (!input.IsEmptyElement) { Debug.Assert(input.reader.NodeType == XmlNodeType.EndElement); endTagLi = input.BuildLineInfo(); } else { Debug.Assert(input.reader.NodeType == XmlNodeType.Element); endTagLi = new EmptyElementEndTag(lineInfo); } }