本文整理匯總了C#中System.Xml.XmlValidatingReader.ReadAttributeValue方法的典型用法代碼示例。如果您正苦於以下問題:C# XmlValidatingReader.ReadAttributeValue方法的具體用法?C# XmlValidatingReader.ReadAttributeValue怎麽用?C# XmlValidatingReader.ReadAttributeValue使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類System.Xml.XmlValidatingReader
的用法示例。
在下文中一共展示了XmlValidatingReader.ReadAttributeValue方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Main
private static bool isValid = true; // If a validation error occurs,
// set this flag to false in the
// validation event handler.
static void Main(string[] args)
{
XmlTextReader r = new XmlTextReader(@"..\..\GenKeyIDList.xml");
XmlValidatingReader v = new XmlValidatingReader(r);
v.ValidationType = ValidationType.Schema;
v.ValidationEventHandler +=
new ValidationEventHandler(MyValidationEventHandler);
while (v.Read())
{
// Can add code here to process the content.
Console.WriteLine(v.LocalName);
if (v.LocalName == "GenericKeyIDList")
{
if(v.IsStartElement())
{
v.MoveToFirstAttribute();
v.ReadAttributeValue();
Console.WriteLine(" " + v.ReadContentAsString());
}
}
}
v.Close();
// Check whether the document is valid or invalid.
if (isValid)
{
Console.WriteLine("Document is valid");
}
else
{
Console.WriteLine("Document is invalid");
}
}
示例2: ResolveEntityReadAttributeValue
public void ResolveEntityReadAttributeValue ()
{
string dtd = "<!DOCTYPE root [<!ELEMENT root (#PCDATA)*><!ATTLIST root attr CDATA #REQUIRED><!ENTITY ent 'entity string'>]>";
string xml = dtd + "<root attr='&ent; text'>&ent;</root>";
dvr = new XmlValidatingReader (xml, XmlNodeType.Document, null);
dvr.Read (); // doctype
dvr.Read (); // root
dvr.MoveToAttribute (0); // attr
Assert.IsTrue (dvr.ReadAttributeValue ()); // Should read expanded text
Assert.AreEqual (XmlNodeType.Text, dvr.NodeType); // not EntityReference
Assert.AreEqual ("entity string text", dvr.Value);
Assert.IsTrue (!dvr.ReadAttributeValue ());
}
示例3: TestPreserveEntityNotOnDotNet
// it used to be regarded as MS bug but it was not really.
public void TestPreserveEntityNotOnDotNet ()
{
string intSubset = "<!ELEMENT root EMPTY><!ATTLIST root foo CDATA 'foo-def' bar CDATA 'bar-def'><!ENTITY ent 'entity string'>";
string dtd = "<!DOCTYPE root [" + intSubset + "]>";
string xml = dtd + "<root foo='&ent;' bar='internal &ent; value' />";
dvr = PrepareXmlReader (xml);
dvr.EntityHandling = EntityHandling.ExpandCharEntities;
dvr.Read (); // DTD
dvr.Read ();
Assert.AreEqual (XmlNodeType.Element, dvr.NodeType);
Assert.AreEqual ("root", dvr.Name);
Assert.IsTrue (dvr.MoveToFirstAttribute ());
Assert.AreEqual ("foo", dvr.Name);
Assert.AreEqual ("entity string", dvr.Value);
// ReadAttributeValue()
Assert.IsTrue (dvr.ReadAttributeValue ());
Assert.AreEqual (XmlNodeType.EntityReference, dvr.NodeType);
Assert.AreEqual ("ent", dvr.Name);
Assert.AreEqual (String.Empty, dvr.Value);
Assert.IsTrue (!dvr.ReadAttributeValue ());
// bar
Assert.IsTrue (dvr.MoveToNextAttribute ());
Assert.AreEqual ("bar", dvr.Name);
Assert.AreEqual ("internal entity string value", dvr.Value);
// ReadAttributeValue()
Assert.IsTrue (dvr.ReadAttributeValue ());
Assert.AreEqual (XmlNodeType.Text, dvr.NodeType);
Assert.AreEqual (String.Empty, dvr.Name);
Assert.AreEqual ("internal ", dvr.Value);
Assert.IsTrue (dvr.ReadAttributeValue ());
Assert.AreEqual (XmlNodeType.EntityReference, dvr.NodeType);
Assert.AreEqual ("ent", dvr.Name);
Assert.AreEqual (String.Empty, dvr.Value);
Assert.IsTrue (dvr.ReadAttributeValue ());
Assert.AreEqual (XmlNodeType.Text, dvr.NodeType);
Assert.AreEqual (String.Empty, dvr.Name);
Assert.AreEqual (" value", dvr.Value);
// ValidationType = None
dvr = PrepareXmlReader (xml);
dvr.EntityHandling = EntityHandling.ExpandCharEntities;
dvr.ValidationType = ValidationType.None;
dvr.Read (); // DTD
dvr.Read ();
Assert.AreEqual (XmlNodeType.Element, dvr.NodeType);
Assert.AreEqual ("root", dvr.Name);
// foo
Assert.IsTrue (dvr.MoveToFirstAttribute ());
Assert.AreEqual ("foo", dvr.Name);
Assert.AreEqual ("entity string", dvr.Value);
// ReadAttributeValue()
Assert.IsTrue (dvr.ReadAttributeValue ());
Assert.AreEqual (XmlNodeType.EntityReference, dvr.NodeType);
Assert.AreEqual ("ent", dvr.Name);
Assert.AreEqual (String.Empty, dvr.Value);
Assert.IsTrue (!dvr.ReadAttributeValue ());
// bar
Assert.IsTrue (dvr.MoveToNextAttribute ());
Assert.AreEqual ("bar", dvr.Name);
Assert.AreEqual ("internal entity string value", dvr.Value);
// ReadAttributeValue()
Assert.IsTrue (dvr.ReadAttributeValue ());
Assert.AreEqual (XmlNodeType.Text, dvr.NodeType);
Assert.AreEqual (String.Empty, dvr.Name);
Assert.AreEqual ("internal ", dvr.Value);
Assert.IsTrue (dvr.ReadAttributeValue ());
Assert.AreEqual (XmlNodeType.EntityReference, dvr.NodeType);
Assert.AreEqual ("ent", dvr.Name);
Assert.AreEqual (String.Empty, dvr.Value);
Assert.IsTrue (dvr.ReadAttributeValue ());
Assert.AreEqual (XmlNodeType.Text, dvr.NodeType);
Assert.AreEqual (String.Empty, dvr.Name);
Assert.AreEqual (" value", dvr.Value);
}
示例4: TestReadTypedAttributeValue
public void TestReadTypedAttributeValue ()
{
string xml = "<root attr='12'></root>";
XmlSchema schema = new XmlSchema ();
XmlSchemaElement elem = new XmlSchemaElement ();
elem.Name = "root";
XmlSchemaComplexType ct = new XmlSchemaComplexType ();
XmlSchemaAttribute attr = new XmlSchemaAttribute ();
attr.Name = "attr";
attr.SchemaTypeName = new XmlQualifiedName ("int", XmlSchema.Namespace);
ct.Attributes.Add (attr);
elem.SchemaType = ct;
schema.Items.Add (elem);
xvr = PrepareXmlReader (xml);
xvr.Schemas.Add (schema);
xvr.Read ();
Assert.AreEqual ("root", xvr.Name);
Assert.IsTrue (xvr.MoveToNextAttribute ()); // attr
Assert.AreEqual ("attr", xvr.Name);
XmlSchemaDatatype dt = xvr.SchemaType as XmlSchemaDatatype;
Assert.IsNotNull (dt);
Assert.AreEqual (typeof (int), dt.ValueType);
Assert.AreEqual (XmlTokenizedType.None, dt.TokenizedType);
object o = xvr.ReadTypedValue ();
Assert.AreEqual (XmlNodeType.Attribute, xvr.NodeType);
Assert.AreEqual (typeof (int), o.GetType ());
int n = (int) o;
Assert.AreEqual (12, n);
Assert.IsTrue (xvr.ReadAttributeValue ()); // can read = seems not proceed.
}
示例5: TestPreserveEntity
public void TestPreserveEntity ()
{
string intSubset = "<!ELEMENT root EMPTY><!ATTLIST root foo CDATA 'foo-def' bar CDATA 'bar-def'><!ENTITY ent 'entity string'>";
string dtd = "<!DOCTYPE root [" + intSubset + "]>";
string xml = dtd + "<root foo='&ent;' bar='internal &ent; value' />";
dvr = PrepareXmlReader (xml);
dvr.EntityHandling = EntityHandling.ExpandCharEntities;
dvr.Read (); // DTD
dvr.Read ();
AssertEquals (XmlNodeType.Element, dvr.NodeType);
AssertEquals ("root", dvr.Name);
Assert (dvr.MoveToFirstAttribute ());
AssertEquals ("foo", dvr.Name);
// MS BUG: it returns "entity string", however, entity should not be exanded.
// ReadAttributeValue()
Assert (dvr.ReadAttributeValue ());
AssertEquals (XmlNodeType.EntityReference, dvr.NodeType);
AssertEquals ("ent", dvr.Name);
AssertEquals ("", dvr.Value);
Assert (!dvr.ReadAttributeValue ());
// bar
Assert (dvr.MoveToNextAttribute ());
AssertEquals ("bar", dvr.Name);
// ReadAttributeValue()
Assert (dvr.ReadAttributeValue ());
AssertEquals (XmlNodeType.Text, dvr.NodeType);
AssertEquals ("", dvr.Name);
AssertEquals ("internal ", dvr.Value);
Assert (dvr.ReadAttributeValue ());
AssertEquals (XmlNodeType.EntityReference, dvr.NodeType);
AssertEquals ("ent", dvr.Name);
AssertEquals ("", dvr.Value);
Assert (dvr.ReadAttributeValue ());
AssertEquals (XmlNodeType.Text, dvr.NodeType);
AssertEquals ("", dvr.Name);
AssertEquals (" value", dvr.Value);
// ValidationType = None
dvr = PrepareXmlReader (xml);
dvr.EntityHandling = EntityHandling.ExpandCharEntities;
dvr.ValidationType = ValidationType.None;
dvr.Read (); // DTD
dvr.Read ();
AssertEquals (XmlNodeType.Element, dvr.NodeType);
AssertEquals ("root", dvr.Name);
// foo
Assert (dvr.MoveToFirstAttribute ());
AssertEquals ("foo", dvr.Name);
// ReadAttributeValue()
Assert (dvr.ReadAttributeValue ());
AssertEquals (XmlNodeType.EntityReference, dvr.NodeType);
AssertEquals ("ent", dvr.Name);
AssertEquals ("", dvr.Value);
Assert (!dvr.ReadAttributeValue ());
// bar
Assert (dvr.MoveToNextAttribute ());
AssertEquals ("bar", dvr.Name);
// ReadAttributeValue()
Assert (dvr.ReadAttributeValue ());
AssertEquals (XmlNodeType.Text, dvr.NodeType);
AssertEquals ("", dvr.Name);
AssertEquals ("internal ", dvr.Value);
Assert (dvr.ReadAttributeValue ());
AssertEquals (XmlNodeType.EntityReference, dvr.NodeType);
AssertEquals ("ent", dvr.Name);
AssertEquals ("", dvr.Value);
Assert (dvr.ReadAttributeValue ());
AssertEquals (XmlNodeType.Text, dvr.NodeType);
AssertEquals ("", dvr.Name);
AssertEquals (" value", dvr.Value);
}