2012-01-12 13 views
1

XMLの束を解析してtrangを使って巨大なスキーマファイルを生成しました。私はXJCを使用してソースを生成しようとすると、しかし、私は、スキーマはそれが動作しない理由以下、XJCを使用してスキーマを生成しようとするとエラーが発生する

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2001/XMLSchema-instance"  xmlns:filter="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/filter" xmlns:ns0="http://www.reuters.com/ns/2006/05/01/webservices/rkd/News_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/headlineml" xmlns:cache_1="http://www.reuters.com/ns/2008/03/01/webservices/rkd/Cache_1" xmlns:ns2="http://www.reuters.com/ns/2006/05/01/webservices/rkd/TokenManagement_1" xmlns:global="http://www.reuters.com/ns/2006/05/01/webservices/rkd/Common_1" xmlns:a="http://www.w3.org/2005/08/addressing"> 
<xs:import namespace="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/filter" schemaLocation="filter.xsd"/> 
<xs:import namespace="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/headlineml" schemaLocation="ns1.xsd"/> 
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/Common_1" schemaLocation="global.xsd"/> 
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/News_1" schemaLocation="reutersXMLSchema.xsd"/> 
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/TokenManagement_1" schemaLocation="ns2.xsd"/> 
<xs:import namespace="http://www.reuters.com/ns/2008/03/01/webservices/rkd/Cache_1" schemaLocation="cache_1.xsd"/> 
<xs:import namespace="http://www.w3.org/2003/05/soap-envelope" schemaLocation="s.xsd"/> 
<xs:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="a.xsd"/> 
<xs:attribute name="type" type="xs:NCName"/> 
</xs:schema> 

任意のアイデアのように見える

xjc reutersXMLSchema.xsd 
parsing a schema... 
[ERROR] no-xsi: The {target namespace} of an attribute declaration must not match  'http://www.w3.org/2001/XMLSchema-instance'. 
line 11 of file:/Users/cqin/Downloads/trang-20081028/xsi.xsd 

Failed to parse a schema. 

、次のエラーを取得しますか?

targetNameSpaceをユニークなものに変更しようとしましたが、より多くのエラーが発生するため、元のエラーで何かできるかどうか疑問に思っています。

ありがとうございます!

答えて

0

はい、これは権利ではありません:これは(あなたのスキーマのターゲット名前空間は、実際にスキーマ定義スキーマ自体の名前空間であることを言っている

targetNamespace="http://www.w3.org/2001/XMLSchema-instance" 

すなわち<xs:schema>とのようなものを定義するスキーマ<xs:import>が実際に意味する)。このスキーマは修正されていますが、それをターゲットにした独自のスキーマを作成することはできません。そのため、XJCはスキーマを拒否しています。

私はユニークなものにターゲット名前変更しようとしましたが、私はそれをしようと多くのエラー

キープを取得し、あなたが今持っているものよりもさらに取得します。しかし、trangがこの悪いスキーマをまったく生成していないという事実は、あなたがラインに沿ってさらに間違ったことをしたことを示唆しています。おそらくあなたはそれがhttp://www.w3.org/2001/XMLSchema-instanceスキーマ自体を含む結合されたスキーマを生成するように頼んだでしょうが、これはほとんどあなたがしたいことではありません。

+0

私の仕事に近づいているのは間違っているかもしれませんし、多分もっと洞察力を与えることができます。基本的には、いくつかのSOAP XMLリクエスト/レスポンス(約6件)からなるXMLがいくつかあります。私はtrangを使用して、すべてのXMLを1つの巨大スキーマに結合しようとしましたが、同僚が私にアドバイスしました。これは最初の場所でそれを行う正しい方法ですか? –

+0

@soulesschild:いいえ、それは良いアイデアのようには聞こえません、あなたが私に言ったから。あなたは何を達成しようとしていますか? – skaffman

+0

基本的には、第三者のAPIを使用して、社内で使用する独自のAPIを構築しています。 APIを呼び出す方法は、POSTを使用してリクエストとともにSOAP SOAPをポストし、SOAP SOAP XML形式で応答を受け取ることです。約5種類のリクエストとレスポンスがあります。 API全体はjavaで書かれています。 –

1

私はこれをtrangのバグと分類します。文字列 "www.w3.org/2001/XMLSchema-instance"のすべてのインスタンスをすべてのファイルの "schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/xsi"のようなものに置き換えます。あなたは大丈夫です。

sed -i -e 's、www.w3.org/2001/XMLSchema-instance、schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/xsi、g' *

+0

ありがとう@Bill。 これはどのように動作するのですか? –

関連する問題