【问题标题】:In emacs XML mode, how to pretty-format an XML schema file?在 emacs XML 模式下,如何漂亮地格式化 XML 模式文件?
【发布时间】:2010-10-29 07:04:15
【问题描述】:

我想自动格式化一个 XML 模式定义文件。所有正常的漂亮打印内容:结束元素后的换行符,缩进。我见过this answerthis elisp,它们为我提供了基础知识。但是,除了那里的内容之外,我还想在尖括号内的属性之间换行。

像这样。之前:

<s:schema elementFormDefault="qualified" targetNamespace="urn:Cheeso.2009.05.Finance/TransferObject/TransactionDetail/" xmlns:tns="urn:Cheeso.2009.05.Finance/TransferObject/TransactionDetail/"  xmlns:detail="urn:Cheeso.2009.05.Finance/TransferObject/TransactionDetail/"  xmlns:to="urn:Cheeso.2009.05.Finance/TransferObject/"  xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:address="urn:Cheeso.2009.05.Finance/TransferObject/Address/" xmlns:caller="urn:Cheeso.2009.05.Finance/TransferObject/Caller/" xmlns:gwy="urn:Cheeso.2009.05.Finance/TransferObject/Gateway/" xmlns:tender="urn:Cheeso.2009.05.Finance/TransferObject/Tender/"  >
 ...
</s:schema>

之后:

<s:schema
    elementFormDefault = "qualified"
    targetNamespace    = "urn:Cheeso.2009.05.Finance/TransferObject/TransactionDetail/"
    xmlns:tns          = "urn:Cheeso.2009.05.Finance/TransferObject/TransactionDetail/"
    xmlns:detail       = "urn:Cheeso.2009.05.Finance/TransferObject/TransactionDetail/"
    xmlns:to           = "urn:Cheeso.2009.05.Finance/TransferObject/"
    xmlns:s            = "http://www.w3.org/2001/XMLSchema"
    xmlns:address      = "urn:Cheeso.2009.05.Finance/TransferObject/Address/"
    xmlns:caller       = "urn:Cheeso.2009.05.Finance/TransferObject/Caller/"
    xmlns:gwy          = "urn:Cheeso.2009.05.Finance/TransferObject/Gateway/"
    xmlns:tender       = "urn:Cheeso.2009.05.Finance/TransferObject/Tender/"  >
 ...
</s:schema>

任何人都可以建议一些可以排列 = 的 elisp 吗?

【问题讨论】:

    标签: xml emacs xsd elisp code-formatting


    【解决方案1】:

    尝试以下方法:

    (defun prettyprint-xml ()
      (interactive)
      (goto-char (point-min))
      (while (search-forward "=" (point-max) t)
        (search-forward "\"")
        (search-forward "\"")
        (forward-char)
        (newline-and-indent))
      (align-regexp (point-min) (point-max) "\#"))
    

    它可能不完全符合您的要求(我只是对其进行了编码),但它看起来应该适用于您展示的情况。

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 2010-09-05
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 2012-01-26
      • 2017-08-24
      相关资源
      最近更新 更多