在没有架构的情况下定义 XML 文件
Defining XML file without its Schema
我认为我们创建 XML 的 Schema
是为了定义 XML 元素及其结构。我想,我们必须在创建 XML
文件之前定义 XSD
。换句话说,没有 xsd
的 xml
文件是没有意义的。
今天我运行这段代码,
XmlWriter XmlWriter = XmlWriter.Create("Test.xml");
XmlWriter.WriteStartDocument();
XmlWriter.WriteStartElement("Users");
XmlWriter.WriteStartElement("User");
XmlWriter.WriteStartAttribute("Salman", "24");
XmlWriter.WriteString("Salman");
XmlWriter.WriteEndElement();
XmlWriter.WriteEndDocument();
XmlWriter.Close();
当我找到我的输出时,没有任何 XSD
文件。只有 Test.xml
。
所以我的问题是:
XSD
个文件的确切作用是什么?
如果我是对的,为什么 C# 不生成输出?
XSDs 用于验证 XML 文件,但它是可选的,不是必需的。如果您正在从同一个应用程序写入/读取,并且您控制对 XML 文件的所有访问,并在事情不起作用时使用 error/exception 处理,则不需要 XSD .
在应用程序之间传递数据时,XSD 作为合同确保双方理解并同意所传递的 XML 文件的格式。
我认为我们创建 XML 的 Schema
是为了定义 XML 元素及其结构。我想,我们必须在创建 XML
文件之前定义 XSD
。换句话说,没有 xsd
的 xml
文件是没有意义的。
今天我运行这段代码,
XmlWriter XmlWriter = XmlWriter.Create("Test.xml");
XmlWriter.WriteStartDocument();
XmlWriter.WriteStartElement("Users");
XmlWriter.WriteStartElement("User");
XmlWriter.WriteStartAttribute("Salman", "24");
XmlWriter.WriteString("Salman");
XmlWriter.WriteEndElement();
XmlWriter.WriteEndDocument();
XmlWriter.Close();
当我找到我的输出时,没有任何 XSD
文件。只有 Test.xml
。
所以我的问题是:
XSD
个文件的确切作用是什么?
如果我是对的,为什么 C# 不生成输出?
XSDs 用于验证 XML 文件,但它是可选的,不是必需的。如果您正在从同一个应用程序写入/读取,并且您控制对 XML 文件的所有访问,并在事情不起作用时使用 error/exception 处理,则不需要 XSD .
在应用程序之间传递数据时,XSD 作为合同确保双方理解并同意所传递的 XML 文件的格式。