public virtual void testRegisterClass() { XMLDoc.registerCustomClass("JDFTestType", "org.cip4.jdflib.core.JDFTestType"); XMLDoc.registerCustomClass("fnarf:JDFTestType", "org.cip4.jdflib.core.JDFTestType"); JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); JDFTestType tt = (JDFTestType)n.appendElement("JDFTestType", null); tt.setAttribute("fnarf", 3, null); Assert.IsTrue(tt.isValid(KElement.EnumValidationLevel.Complete), "extension is valid"); tt = (JDFTestType)n.appendElement("fnarf:JDFTestType", "WWW.fnarf.com"); tt.setAttribute("fnarf", 3, null); Assert.IsTrue(tt.isValid(KElement.EnumValidationLevel.Complete), "ns extension is valid"); tt.setAttribute("fnarf", "a", null); // illegal - must be integer Assert.IsTrue(!tt.isValid(KElement.EnumValidationLevel.Complete), "ns extension is valid"); tt.removeAttribute("fnarf", null); Assert.IsTrue(tt.isValid(KElement.EnumValidationLevel.Complete), "ns extension is valid"); tt.setAttribute("gnu", "a", null); // illegal - non existent Assert.IsFalse(tt.isValid(KElement.EnumValidationLevel.Complete), "ns extension is valid"); // boolean bClassCast = false; // try // { // tt = (JDFTestType) n.appendElement("blub:JDFTestType", // "WWW.fnarf2.com"); // } // catch (ClassCastException exc) // { // bClassCast = true; // } // Assert.IsTrue("ns extension works", bClassCast); Assert.IsTrue(!(n.appendElement("blub:JDFTestType", "WWW.fnarf2.com") is JDFTestType), "ns extension works"); }