代码之家  ›  专栏  ›  技术社区  ›  bmargulies

XHTML 1.1的W3CXML模式在哪里?

  •  5
  • bmargulies  · 技术社区  · 15 年前

    有一个旧的W3C建议包含XHTML 1.0的XML模式,并声称1.1的模式即将发布。XHTML 1.1的W3CXML模式在哪里?

    3 回复  |  直到 8 年前
        1
  •  5
  •   Luke Puplett    11 年前
        2
  •  3
  •   NullUserException Mark Roddy    15 年前
        3
  •  2
  •   maxschlepzig    8 年前

    XHTML 1.1的XML模式(XSD)被模块化为多个文件,因此,为了验证您是否需要在本地目录中提供以下文件:

    http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml11-model-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml11-modules-1.xsd
    

    通过这些文件(和网络访问),您可以验证xhtml 1.1文件,如下所示:

    $ xmllint -noout -schema xhtml11.xsd foo.xml
    

    如果没有网络访问,您还需要以下文件:

    http://www.w3.org/2001/xml.xsd
    http://www.w3.org/2009/01/xml.xsd # -> xml_2009_01.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-attribs-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-base-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-bdo-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-blkphras-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-blkpres-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-blkstruct-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-charent-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-csismap-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-datatypes-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-datatypes-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-edit-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-events-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-form-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-framework-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-hypertext-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-image-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-inlphras-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-inlpres-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-inlstruct-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-inlstyle-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-link-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-list-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-meta-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-notations-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-object-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-param-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-param-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-pres-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-ruby-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-script-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-ssismap-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-struct-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-style-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-table-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-target-1.xsd
    http://www.w3.org/MarkUp/SCHEMA/xhtml-text-1.xsd
    

    然后用如下方法调整模式位置:

    $ sed -i 's@schemaLocation="http://www.w3.org/2009/01/xml.xsd"@schemaLocation="xml_2009_01.xsd"@' *.xsd
    $ sed -i 's@schemaLocation="[^"]\+/\([^"]\+\)"@schemaLocation="\1"@' *.xsd
    

    通过生成的文件,您可以在本地验证xhtml 1.1文件,如下所示:

    $ xmllint -noout -schema xhtml11.xsd -nonet foo.xml
    

    对于浏览,有 XHTML 1.1 XML Schema Defintion appendix 包含内联模块的。