zoukankan      html  css  js  c++  java
  • 如何:控制命名空间前缀 (C#) (LINQ to XML)

    Visual Studio 2010 

    本主题介绍在序列化 XML 树时如何控制命名空间前缀。

    在很多情况下,不需要控制命名空间前缀。

    但是,某些 XML 编程工具需要命名空间前缀的特定控制。 例如,您可能正在操作 XSLT 样式表或 XAML 文档,其中包含引用特定命名空间前缀的嵌入式 XPath 表达式,在这种情况下,一定要使用这些特定前缀对文档进行序列化。

    这是控制命名空间前缀的最常见的原因。

    需要控制命名空间前缀的另一个常见原因是:您希望用户手动编辑 XML 文档,而且您希望创建方便用户键入的命名空间前缀。 例如,您可能正在生成 XSD 文档。 架构约定建议您使用 xs 或 xsd 作为架构命名空间的前缀。

    若要控制命名空间前缀,请插入声明命名空间的属性。 如果使用特定前缀声明命名空间,LINQ to XML 将在序列化时尝试接受此命名空间前缀。

    若要创建一个声明具有前缀的命名空间的属性,请创建一个属性,该属性的名称的命名空间为 Xmlns,该属性的名称为命名空间前缀。 该属性的值即是命名空间的 URI。

    示例

     

    本示例声明两个命名空间。 它指定 http://www.adventure-works.com 命名空间具有 aw 前缀,www.fourthcoffee.com 命名空间具有 fc 前缀。

     
    XNamespace aw = "http://www.adventure-works.com";
    XNamespace fc = "www.fourthcoffee.com";
    XElement root = new XElement(aw + "Root",
        new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
        new XAttribute(XNamespace.Xmlns + "fc", "www.fourthcoffee.com"),
        new XElement(fc + "Child",
            new XElement(aw + "DifferentChild", "other content")
        ),
        new XElement(aw + "Child2", "c2 content"),
        new XElement(fc + "Child3", "c3 content")
    );
    Console.WriteLine(root);
    
    

    此示例产生以下输出:

     
    <aw:Root xmlns:aw="http://www.adventure-works.com" xmlns:fc="www.fourthcoffee.com">
      <fc:Child>
        <aw:DifferentChild>other content</aw:DifferentChild>
      </fc:Child>
      <aw:Child2>c2 content</aw:Child2>
      <fc:Child3>c3 content</fc:Child3>
    </aw:Root>
    
  • 相关阅读:
    MFC通过ODBC连接Mysql程序
    MFC下DLL编程(图解)
    INI文件的写入与读取
    如何在MFC中启动其它的(.exe)可执行文件
    [VC++]用CTime类得到当前日期、时间、星期,格式化(详细讲解)
    OutputDebugString输出调试信息到debugtrack
    MFC添加背景图片三种方法
    在MFC对话框中添加状态栏
    MFC 窗体背景图片设置
    MFC实现为窗体添加的背景图片
  • 原文地址:https://www.cnblogs.com/HappyEDay/p/5473651.html
Copyright © 2011-2022 走看看