xs:import模式中声明的Xslt转换类型

xs:import模式中声明的Xslt转换类型,xslt,Xslt,我需要将表示JavaDTO的xsd转换为html。 主要目标是允许在常规输入失败的情况下填充对象,即使在生产中也是如此。(也就是说,它不需要漂亮) 我发现哪个应该做我想做的,但不幸的是没有 我的问题如下:如果我有这样的源模式: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:c="http://www.trivia

我需要将表示JavaDTO的xsd转换为html。 主要目标是允许在常规输入失败的情况下填充对象,即使在生产中也是如此。(也就是说,它不需要漂亮)

我发现哪个应该做我想做的,但不幸的是没有

我的问题如下:如果我有这样的源模式:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:c="http://www.trivia/commonTypes/v1_0"
       targetNamespace="http://www.trivia/v1_0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">

<xs:import schemaLocation="comm.xsd" namespace="http://www.trivia/commonTypes/v1_0" />

<xs:element name="common" type="c:typeAddress"/>
<xs:element name="local" type="typeAddress"/>
<xs:element name="simple" type="xs:string"/>

<xs:complexType name="typeAddress">
    <xs:sequence>
        <xs:element name="city" minOccurs="0">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="40" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
    </xs:sequence>
</xs:complexType>

简单元素和局部元素按预期进行转换,但公共元素未按预期进行转换。出于示例的考虑,comm.xsd包含TypeAddress的副本


问题是如何在xsl转换中引用使用导入语句声明的类型?

执行从源XSD文档开始的任何类型的处理都是一项艰巨的任务,因为有太多的表达方式:例如,是否需要处理命名属性组或模型组?那么xs:重新定义呢?你总是可以扩展一点这样的软件来处理更多的案例,但你正处在一个上坡的自动扶梯上:在你完成之前,总有很多事情要做。我的建议是,不要这样做。使用允许您访问由模式处理器构建的内部模式组件模型的API。Xerces处理器通过JavaAPI将其公开,Saxon处理器将其公开为XML文档(称为SCM文件)。不管是哪种方式,所有表面的东西(比如xs:import)都会得到处理,您只需要担心底层的数据模型