Php 仅使用XSD而不使用XSL从XML生成HTML

Php 仅使用XSD而不使用XSL从XML生成HTML,php,html,xml,xslt,xsd,Php,Html,Xml,Xslt,Xsd,我是新来的开发人员,提前道歉和感谢。 我有一个例子,在我的XML和XSD文件中: xml: 我的 他不强壮。 xsd: 也可以使用DTD <!ELEMENT paragraph (#PCDATA | a )*> <!ELEMENT a (#PCDATA)> <!ATTLIST a href CDATA #REQUIRED> 这些文件托管在异地,我无法控制它们。它们用于生成站点内容。我可以通过PHP获取元素和属性,并将它们拼接

我是新来的开发人员,提前道歉和感谢。 我有一个例子,在我的XML和XSD文件中:

xml:


我的
他不强壮。
xsd:


也可以使用DTD

<!ELEMENT paragraph        (#PCDATA | a )*>
<!ELEMENT a    (#PCDATA)>
<!ATTLIST a href CDATA  #REQUIRED>

这些文件托管在异地,我无法控制它们。它们用于生成站点内容。我可以通过PHP获取元素和属性,并将它们拼接在一起,这样就可以按原样处理数据。然而,有一种方法可以将XSD应用到XML上,从而使输出保持原样,即:混合内容,当拉出时看起来像所有HTML

我相信.XSD只用于定义您可以验证的数据格式,否则可能是错误的

我没有一个.XSL,据我所知,XSLT转换将需要并且可以为我做到这一点。这是理想情况下我想做的,如果可以实现的话

我不确定是否可以对元素应用CData,然后对其进行解析。 我还没有找到一种动态生成xsl的方法

任何指向资源的指导或指针都会很好。橡皮鸭万岁

我对发展一无所知

没关系,我们都是从某个地方开始的。从你的帖子来看,你似乎在混合技术,不确定哪种是哪种

也可以使用DTD格式。
[…]它们用于生成网站内容

DTD和XSD用于验证XML。为此,您需要(对于DTD)和。这些不用于内容生成,根据模式中的约定,模式最多用于验证生成的内容是否正确。也就是说,一个元素可以有子元素,还是只有文本内容

我相信.XSD只用于定义您可以验证的数据格式,否则可能是错误的

这是正确的

[…]这样输出就是原样,即:混合内容,当拉出时,看起来都像HTML一样。
[…]我没有一个.XSL,据我所知,XSLT转换将需要并且可以为我实现这一点。这是我理想的选择 如果某种程度上可以实现,就去做

根据您想要实现的目标,XSLT可能是一种方法。这实际上取决于您正在使用的内容管理系统,这适用于桌面应用程序或Web应用程序,它是否必须运行服务器端或客户端,这在您的情况下是否可行。如果您能找到关于为web生成内容的教程

要生成“HTML快乐”XML,您需要指定哪些元素必须转换为哪些HTML元素。也就是说,你的
段落
可以翻译成
p
,你的
a
-元素可以保持原样。对于这类任务,XSLT是一个不错的选择。但同样,这取决于您的基础设施是否可行


在工作中使用XSLT的自然方式通常是在XML服务器端处理输入,然后按以下顺序进行:获取输入XML->使用XSD处理器验证XML->根据XSLT样式表运行XML作为输入->获取此转换的输出->将此输出提供给最终用户(即网页、web应用程序、桌面应用程序).

很不清楚你在问什么。您可以将*.xsd(XML模式)应用于XML文档,然后,这个过程称为验证。这就是你想做的吗?还是生成HTML?如果是,怎么做?谢谢你的时间。感谢您的反馈,我将研究这些教程。但基本上,我缺少的是xslt样式表。祝您愉快:)。@fable XSLT是一种编程语言,您可以用它做任何事情。这在很大程度上取决于输入XML和请求的输出,以及如何对其进行编码。网上有很多教程,甚至还有免费的书籍,但是如果你遇到了困难,请随时提出新的问题:)
<xsd:element name="paragraph">
  <xsd:complexType mixed="true">
    <xsd:sequence>
      <xsd:element name="a"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<xsd:element name="a">
  <xsd:complexType>
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="href" type="xsd:anyURI"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
</xsd:element>
<!ELEMENT paragraph        (#PCDATA | a )*>
<!ELEMENT a    (#PCDATA)>
<!ATTLIST a href CDATA  #REQUIRED>