2017-06-07 55 views
0

我需要將表示Java dtos的xsd轉換爲html。 主要目標是如果常規輸入失敗,則允許在生產中填充對象。 (即它不需要漂亮)在xs中聲明的Xslt變換類型:導入架構

我發現https://github.com/MichielCM/xsd2html2xml這應該做我想要的,但不幸的是沒有。

我的問題是:如果我有一個源架構是這樣的:

<?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包含一個typeAdress的副本。

問題是如何引用在xsl轉換中使用import語句聲明的類型?

回答

0

做任何從源XSD文檔開始的處理都是一項艱鉅的任務,因爲有很多表達事物的方式:例如,是否需要處理命名屬性組或模型組?關於xs:重新定義?你總是可以像這樣擴展一些軟件來處理另一個案例,但是你正在上坡自動扶梯:在完成之前總會有很多事情要做。我的建議是,不要這樣做。使用API​​可以訪問模式處理器構建的內部模式組件模型。 Xerces處理器通過Java API公開這一點,Saxon處理器將其公開爲XML文檔(稱爲SCM文件)。無論哪種方式,所有表面的東西,如xs:import都照顧好了,你只需要擔心底層的數據模型。