NightOwl888 commented on code in PR #835:
URL: https://github.com/apache/lucenenet/pull/835#discussion_r1166062576


##########
src/Lucene.Net.Benchmark/Support/TagSoup/ElementType.cs:
##########
@@ -59,6 +62,26 @@ public ElementType(string name, int model, int memberOf, int 
flags, Schema schem
             localName = GetLocalName(name);
         }
 
+        /// <summary>
+        /// LUCENENET specific constructor that allows the caller to specify 
the namespace and local name
+        /// and is provided to subclasses as an alternative to <see 
cref="ElementType(string, int, int, int, Schema)"/>
+        /// in order to avoid virtual method calls.
+        /// </summary>
+        public ElementType(
+            string name, int model, int memberOf, int flags, Schema schema,
+            Func<string, bool, string> namespaceFunc,

Review Comment:
   I think a better route to take here would be to allow the `namespace` and 
`localName` to be passed in.
   
   ```c#
   public ElementType(string name, string @namespace, string localName, int 
model, int memberOf, int flags, Schema schema)
   ```
   
   And then mention in the docs that these can be retrieved from `name` by 
calling `GetNamespace(name, false)` and `GetLocalName(name)`.
   
   Do note that Microsoft names these a bit differently - `prefix`, 
`localName`, and `namespaceURI`: 
https://learn.microsoft.com/en-us/dotnet/api/system.xml.xmldocument.createattribute?view=net-7.0#system-xml-xmldocument-createattribute(system-string-system-string-system-string).
   
   Perhaps it would be worth it to update all of TagSoup and SAX to be 
consistent with these names and in this order. I noticed SAX uses `GetURI` for 
"namespace URI" and TagSoup uses `@namespace`, which conflicts with the C# 
`namespace` keyword.
   
   Do be aware that TagSoup has a T4 template named `HTMLSchema.tt` that 
auto-generates some code based on some XSLT templates and data files, so we 
should check whether these changes affect that generated code. Also, I have no 
idea whether it will generate the identical code that we have checked in - 
perhaps we should check that.



##########
src/Lucene.Net.Benchmark/Support/TagSoup/ElementType.cs:
##########
@@ -47,6 +48,8 @@ public class ElementType
         /// <param name="schema">
         /// The schema with which this element type will be associated
         /// </param>
+        [SuppressMessage("CodeQuality", "IDE0079:Remove unnecessary 
suppression", Justification = "This is a SonarCloud issue")]
+        [SuppressMessage("CodeQuality", "S1699:Constructors should only call 
non-overridable methods", Justification = "This class gets deprecated and 
removed in later versions")]

Review Comment:
   When you say "later versions", are you referring to TagSoup or Lucene?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@lucenenet.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to