XSDファイルを開く。 XMLおよびXSDスキーマを作成する方法とその逆の方法xmlファイルxsdスキーマを作成する
一緒に仕事をするときの非常に典型的なタスクについて一箇所で伝えたいと思います XML、すなわち、作成について XML既存のものに基づいています。 この操作はいくつかの段階で構成され、その実行中に次のような追加のタスクが解決されます。
- クリーチャー XMLベース XSD、 およびその逆。
- オブジェクトのシリアル化と逆シリアル化。
- から将来のシリアル化のためのクラスを作成する XMLまたは XSD.
XSD説明する言語です XML..。 そして、この説明を含むファイルの内容を見ると、疑問が生じます。なぜ、一見明白なタグを説明するのですか。 XML? ただし、外部システムと統合していて、データ交換にこの形式を使用したいとします。 XML..。 そう、 XSD各要素について、その名前、可能な属性、必須フィールドまたは属性を記述して、タグのコンテンツに1つの内部要素のみを含めることができることを明確にすることができます( )およびそれ以上、またはノードは要素のシーケンスを持つことができます(< a\u003e ... )。 外部システムがあなたのものである場合、問題は発生しない可能性がありますが、それがサードパーティの組織である場合、 XSD、フォーマットとの紛争を解決するためのツールになり、ユーティリティを使用して、任意のコンプライアンスを確認できます XML 元の形式。だから、スタンプの仕方を学ぶために何をするつもりですか XMLあなたのベンチマークに基づいていますか? すべてを順番に説明します。
利用可能:
とは XML(xmlfile.xml)テキスト形式でファイルに保存されます。 以下はテキストです:
xml
version
=
"
1.0
"
?>
<
catalog
>
<
book
id
=
"
bk101
"
>
<
author
> ガンバルデラ、マシュー
author
>
<
title
> XML開発者ガイド
title
>
<
genre
> コンピューター
genre
>
<
price
>
44.95
price
>
<
publish_date
>
2000-10-01
publish_date
>
<
description
> XMLを使用してアプリケーションを作成する方法の詳細。
description
>
book
>
<
book
id
=
"
bk102
"
>
<
author
> ラルズ、キム
author
>
<
title
> 真夜中の雨
title
>
<
genre
> ファンタジー
genre
>
<
price
>
5.95
price
>
<
publish_date
>
2000-12-16
publish_date
>
<
description
> 元建築家は、企業のゾンビ、邪悪な魔術師、そして彼女自身の子供時代と戦い、世界の女王になります。
description
>
book
>
catalog
>
新しいものを作成する手順:
- 最初にユーティリティを使用する XSD.exe、またはオンラインサービスを使用して(「xmltoxsd」を検索しますwww.freeformatter.com/xsd-generator.html)、既存のサービスから作成します XMLその原始的な XSD説明。 出力では、完全に自動的に作成されます output.xsd すでに使用されているが、完全ではない可能性のあるファイル。
- さらに、に基づいて output.xsd 、C#のクラスが作成されます xmlclass.cs。その後、それをプロジェクトに追加します。 を使用してクラスを作成できます XSD.exe、または xsd2code ユーティリティ、または任意のオンラインサービス。
- これで、ファイルクラスを使用する準備ができました xmlclass.cs..。 したがって、データインスタンスを作成して入力します xmlclass、次に、シリアル化プロセスを使用して、オブジェクトをに変換します。 XML 文字列を入力し、新しいファイルに保存します。 したがって、 XML利用可能に基づいています。
手順1.XMLからXSDを作成します。
だから、これが私が自分自身を使う方法です:- ユーティリティ xsd.exe -作成者 マイクロソフト.
- ユーティリティ xsd2code.exe -と同じことをすべて実行できるサードパーティアプリケーション xsd.exe、ただし直接ダウンロードできます(支払いが開始された時点で トライアル 限目)。
- オンラインサービスの使用。
いずれかをダウンロードしてインストールするためのリンク SDK:
Windows7および.NETFramework4用のWindowsSDK。
検索を使用してファイルを見つけましょう xsd.exe、その後(作業を簡素化するために)、ディスクのルートに作成されたフォルダーにコピーします C:\\ xmltoxsd..。 次に、同じフォルダに、 xmlfile.xml そして、すべてを開始する準備が整いました。
「コマンドライン」を開き(「スタート」-\u003e「実行」-\u003e「cmd」)、ディレクトリに移動し、デフォルトのパラメータで呼び出します xsd.exexmlfile.xmlをパラメーターとして渡すことによって:
そして、ファイルが隣に表示されていることがわかります xmlfile.xsd コンテンツ付き。
それで全部です! これらのアクションは、プリミティブを作成するのに十分です XSD使用するファイル。 しかし、あなたはあなた自身であることを理解する必要があります xsd.exe他のユーティリティと同様に、フィールドのタイプについては何も知りません(したがって、ほとんどの場合、フィールドのタイプは次のようになります。 ストリング)、および属性とパラメータのすべてのバリエーションについて。 つまり、一部のタグに属性がない場合 XML、それからそれは説明にありません。 したがって、 XML最も完全である必要があり、要素に複数の子フィールドを含めることができる場合は、少なくとも2つ追加して、次のようにすることをお勧めします。 xsd.exe それがコレクションであることに気づきました。
構文 XSDそれほど複雑ではないので、十分に真剣な説明を書く場合は、ファイルを操作する必要があるかもしれません。
ステップ2.XSDからクラスを作成します。
C#でクラスを作成するには、再利用する必要があります xsd.exe しかし、異なるパラメータで / クラス私たちへの道を渡す xmlfile.xsd.実行後、ファイルxmlfile.csが表示され、その内容が圧縮された形式で以下に示されています。
ご覧のとおり、内側の要素について カタログクラスが作成されました catalogBookそのフィールドはのフィールドに対応します XMLとフィールド Id属性としてマークされています。 Xsd.exe 中身を正しく理解した カタログ本のコレクションが保存されているので、プロパティが表示されました アイテム子コレクションにデータを入力します。
コメント: xsd.exe 結果のクラスとフィールドにコメントを追加することはできません。 説明で XSDと呼ばれる要素があります< xs:annotation > , ほとんどの場合、< xs:documentation >, その中にフィールドの説明が配置されます。 理論的には、///の説明に配置する必要がありますが、現時点では xsd.exe 説明にテキストを追加することを拒否するため、次のような代替手段に頼る必要があります xsd2code またはオンラインサービス。
ステップ3.オブジェクトのXMLへのシリアル化。
結果のクラスはファイルにあります xmlfile.cs..。 次に、その内容またはファイル自体をプロジェクトに追加します Visual Studio、その後、彼と一緒に働くことができます。 デモブックオブジェクトを作成し、それを次の形式でファイルに保存します XML.プライベートボイドの例()( //最初の本を作成します var book1 \u003d new catalogBook()(author \u003d "King"、description \u003d "Very Interesting book"、genre \u003d "Fantasy"、price \u003d 22.ToString()、id \u003d "42011"、title \u003d "(!LANG:It"
};
!} // 2冊目の本を作成する var book2 \u003d new catalogBook()(author \u003d "O" Brien、Tim "、description \u003d 「Microsoft」の.NETイニシアチブについては、このディーププログラマーの「リファレンス」で詳しく説明しています。、genre \u003d "Computer"、price \u003d 36.ToString()、id \u003d "30012"、title \u003d 「Microsoft.NET:プログラミングバイブル」
};
//上記の2冊の本を含むディレクトリのルート要素を作成します var catalog \u003d new catalog()(Items \u003d new(book1、book2)); //カタログオブジェクトのXMLが含まれています var xmlCatalog \u003d Serialize(カタログ); //ファイルに行を書き込みます
//
TODOデモンストレーション用に作られました。 Serializeメソッドを呼び出してStreamをファイルに転送することで望ましい File .WriteAllText( "Output.xml"、xmlCatalog); )プライベート文字列シリアル化
歌詞などなしで、すべてが乾きます。
そう。 彼らは私に仕事をもたらしました。 xmlファイルの形式でレポートを受信するための外部サービスと友達1Cを作ります。
サードパーティのサービスには、ファイルを受信するための独自のAPIがあり、出力で特定の「バッチ」コードを発行します。これにより、別の関数を呼び出して、このバッチのエラーに関するすべての詳細情報を取得できます。
xsdスキーマファイルは小さいですが、多くのデータタイプがあります。このスキーマに基づくと、完全に形成されたXMLファイルは約200MBを占めます。
その結果、拡張子が「xsd」のファイルが手元にありました。
その時、私はそれが何で、何で、どのように食べられたのか分かりませんでした。
Infostartは大いに役立ちました(もちろん、Infostartがないわけではありません-感謝します)。
まず、このミニプロジェクトを完了するまで使用していた資料を以下に示します。したがって、今後必要になる可能性のあるリンクを以下に示します。これは、XDTOルールを学びたい人にとってはなくてはならないものだと思います。
収益は何ですか。
「水の中ではなく」本質を見るように要求します。
主な行は次のとおりです。
xsdスキーマのプロパティ属性を取得するには、次のコード構成を使用します。
しかし、私は他の方法を見たと言います、ここで、彼らが言うように、それはあなた次第です。
図7から12の結果
完成したファイルでは次のようになります。
そして、これは私が気づいたことです(まあ、地元の教祖はずっと前に知っていたかもしれません)。
それはルールとマークの両方のようなものです。
「ContractCode」プロパティを検討してください
説明は次のとおりです。
このプロパティが「要素」のような形をしている場合、コードは次のようになります。
それら。 パラメータに値を書き込んで、「\u003d等しい」だけで実行します。
プロパティの形式が「要素」であるが、「+」記号で記述されている場合
どのようにここに
それから彼のコードは少し異なって見えます
それら。 最初にファクトリでこのタイプを作成し、その下位のサブタイプを取得して、データからそれらに値を割り当てる必要があります。
そして最後に、これが起こることです。
スキーマ内の場合、このプロパティの形式は「要素」です。
次に、次のレコードが完成したファイルに書き込まれます。
それら。 すべてはいわゆる内部に記録されます。 「タグ」。
それら。 「FundingType」プロパティには従属要素「id」があり、その形式は「Attribute」と同じです。
この場合、コードは記述時に変更されません。
このコードは図16に似ていることに注意してください。
さて、結果はわずかに異なります:
それら。 値は「タグ」自体に直接書き込まれます。
「性別」などの物件があります
さまざまな形式のレポートを実行するとき(またはネットワークでの通常の作業中でも)、一部のユーザーは拡張子XSDのファイルに遭遇する可能性があります。 このファイルは通常、XMLデータを記述するためのスキーマですが、ファイルがパターンメーカーの派生物である場合もあります。 この記事では、XSDファイルを開く方法、これを支援するプログラム、および「ファイルがxsdスキーマと一致しません」というエラーの本質について説明します。
XSDとは
「XSD」という用語は、英語の単語の略語です。 XMLスキーマ定義..。 この拡張子を持つファイルは、独自の言語を使用してXMLドキュメントの構造を記述するXMLデータ記述スキーマです。
xsdファイルは、XMLドキュメントで見つかった要素を記述します。 これらは通常、固定データ、デフォルト値、データ構文、特定のドキュメントが準拠する必要のあるルールなどであり、一部の要素は他の要素を相互接続して参照することがよくあります。
XSD 1.1は、2012年4月にWorld Wide Web Consortiumによって承認され、DTD(ドキュメントタイプ定義)やSOX(シンプルオブジェクトXML)などの既存のXMLスキーマに比べていくつかの重要な利点を提供します。 たとえば、これはXSDがXMLで記述されている、スキーマの自動作成がある、などです。
![](https://i2.wp.com/rusadmin.biz/files/2017/03/12.jpg)
xsdフォーマットを開く方法
ほとんどのxsdファイルを開くには、使用可能なテキストエディタ(同じメモ帳、メモ帳++、PSPadエディタなど)を使用するだけで十分です。 また、xsd形式を開く際には、Microsoft XML Notepad、Oxygen XML Editor、Liquid XMLStudioなどのプログラムが役立ちます。
このファイルがクロスステッチプログラムのパターンメーカー(通常は刺繍のパターン)の結果である場合、そのようなファイルは、指定されたプログラムを使用するか、「パターンメーカービューアー」と呼ばれる特別なビューアーを使用して表示できます。
![](https://i0.wp.com/rusadmin.biz/files/2017/03/13.png)
ファイルがxsdスキームと一致しません-それは何ですか?
ただし、XSDファイルに含まれるXMLファイルの説明がXMLファイルの実際のデータと一致しない場合があります。 エラーは、データ自体とこのデータの入力方法の両方にある可能性がありますが、システムは標準的な方法で反応し、「ファイルはxsdスキームに対応していません」というメッセージを表示します。
![](https://i2.wp.com/rusadmin.biz/files/2017/03/14-1.jpg)
多くの場合、この状況は、会計やその他の形式のレポートを提出する場合に発生します。監督当局の専門家がxmlファイルを開こうとしたときに、前述のエラーを発見した場合です。
- xmlファイルのデータの正確さを確認してください構文エラー(余分なハイフン、スペースなど)の存在に焦点を当てます。
- xmlファイルを使用したプログラムを更新します (現在のバージョンは古くなっている可能性があります);
- テクニカルサポートに連絡するこのソフトウェア製品のメンテナンス(または監督当局の技術サポート)に責任を負います。
結論
XSDファイルを開く方法は? 質問への答えは、便利なテキストエディタ(同じ「メモ帳」)を使用することです。 必要なxsdファイルが「PatternMaker」プログラムの製品である場合は、このプログラムで開くか、補完的な「PatternMakerViewer」ビューアを使用することをお勧めします。
XSD拡張子の付いたファイルは、ほとんどの場合XMLスキーマファイルです。 XMLファイルの検証ルールを定義し、XMLフォームを説明するテキストファイル形式。
XSDファイルはスキーマファイルであるため、他の何か、この場合はXMLファイルのモデルを提供します。 たとえば、XSDファイルでは、XMLファイルに特定の境界、関係、順序、属性、ネストされた特性、その他の要素、または任意の制限が必要な場合があります。
XMLファイルは、schemaLocation属性を使用してXSDファイルを参照できます。
HobbyWareのPatternMakerクロスステッチプログラムも、そのフォーマットにXSD拡張機能を使用しています。
XSDファイルを開く方法
XSDファイルは、Microsoft Visual Studio、XML Notepad、EditiX XML、およびXMLSpyでも開くことができます。 Oxygen XML Editorは、Linux、Mac、およびWindowsで動作する数少ないXSDツールの1つです。
ファイルが単なるテキストファイルである場合は、テキストエディタをXSDビューアおよびエディタとして使用することもできます。
XSDファイルをテキストエディタで開いたときの例を次に示します。
パターンメーカーで使用されるXSDファイルを扱っている場合は、もちろんこのソフトウェアで開くことができます。 ただし、HobbyWareには、パターンファイルを無料で開いて印刷するためのPattern MakerViewerが用意されています。 XSDファイルをプログラムにドラッグアンドドロップするか、メニューを使用するだけです "ファイル" → "開いた..."..。 このビューアは、同様のPAT形式もサポートしています。
iOSおよびAndroid用のCrosstyアプリは、クロスステッチ用にXSDファイルを開くこともできますが、無料ではありません。
XSDファイルを変換する方法
XSDファイルを別の形式に変換する最も簡単な方法 -上記のXSDエディターのいずれかを使用します。
あなたが必要とするかもしれないもう一つの変革は XSDからPDFへXSDファイルをAdobeAcrobatReaderまたはその他のツールで開くことができるようにします。 XSDファイルをPDFに変換する特別な理由は、それを開くすべてのコンピューターでコードを表示する以外に、おそらくありません。
XMLスキーマ定義ツールは、シリアル化可能なクラスまたはデータセットのXDR、XML、およびXSDファイルをCクラスの#として変換できます。
XSDファイルからデータをインポートしてExcelスプレッドシートに配置する必要がある場合は、MicrosoftExcelを使用できます。
上記のPatternMakerプログラム(無料のビューアではありません)を使用して、クロスステッチXSDファイルを新しいファイル形式に変換できる可能性があります。
それでもファイルを開くことができませんか?
上記のプログラムやツールでXSDファイルを開くことができない場合は、XSDファイルではなく、同様の拡張子のファイルを扱っている可能性があります。
たとえば、XDS拡張機能はXSDと非常によく似ていますが、代わりにDS GameMakerプロジェクトファイルとLcdStudioDesignファイルに使用されます。 これらのファイル形式はいずれも、XMLファイルまたはテンプレートに関連付けられていません。
同じ概念が、.XSBファイル拡張子を使用するXACTサウンドバンクファイルなど、他の多くのファイル形式にも当てはまります。 これらは、XSDオープナーまたはファイルコンバーターで開くことができないサウンドファイルです。
ファイルが.XSDで終わっていない場合は、拡張子を調べて、その特定のファイルタイプを開いたり変換したりできるプログラムを見つけてください。
多くの場合、ビジネスプロセスを自動化する場合、構造化データに基づいて電子ドキュメントを生成する必要があります。 構造化データのソースは通常、DIRECTUMシステムディレクトリです。 電子文書を生成する必要性は、次の理由で発生します。
- 電子文書は、情報を調整するための便利なプレゼンテーションです。 複数のデータソースからのデータを表示する機能。
- EDSのインストール-承認結果の追加保護。
通常、ドキュメントの作成には、統合レポートの開発を使用します。統合レポートは、作成後に電子ドキュメントとしてアーカイブに保存できます。 私の意見では、このアプローチの欠点は次のとおりです。
- 開発の高度な複雑さ。これは通常、レポートの視覚的な部分をプログラムする必要性に関連しています。 これは、DIRECTUMシステムのrtfおよびExcel / htmlレポートに適用されます。
- レポートテンプレートは開発中であり、システムユーザーはビュー設定を変更できません。 たとえば、顧客は多くの場合、システムによって生成されたレポートにロゴを追加したいと考えています。
上記の欠点を解決する、Excelテンプレートに基づいて電子ドキュメントを生成するための代替オプションを使用することを提案します。 このメカニズムは、添付されたXSDデータスキーマの要素を使用してテンプレートをマークアップするExcelの機能に基づいています。 この機能は、Excel2003以降で使用できます。
Excel 2007でのドキュメントテンプレート「アカウントステートメント」のマークアップの例を示します。XSDデータスキーマ接続オプションへのパス:[開発者]タブ(リボン上)\\ソース\\ XMLマップ... \\追加。 データスキーマの説明を含むファイルを選択するためのダイアログボックスが開きます。 「XMLソース」セクションでスキーマを接続すると、接続されたXSDスキーマの要素が表示され、テンプレートの任意のセルに転送できます。
XSDスキーマは、データ項目を記述する通常のXMLファイルです。 この例のXSDスキーマは次のようになります。
テンプレートを構成し、データフィールドにマークを付けたら、テンプレートをシステムに保存し、ISBLの開発にリンクできるパラメーターをインストールに追加できます。 カスタマイズされたテンプレートに基づいてプログラムで電子ドキュメントを作成するには、次の手順を実行する必要があります。
1.添付のXSDテンプレートスキーマに対応するデータを含むXMLファイルを準備します。 例で説明されているXSDスキーマのXMLデータは次のようになります。
ISBLでのXMLドキュメントの形成は、msxml.dllライブラリを使用して実行する必要があります。
…REPORT_NAME \u003d“ Account statement_card” XMLDocument \u003d CreateObject( "MSXML.DOMDocument")ProcInstruction \u003d XMLDocument.CreateProcessingInstruction( "xml"; "version \u003d" 1.0 "encoding \u003d" windows-1251 "standalone \u003d" yes "")XMLDocument(appendChild ProcInstruction)RootElement \u003d XMLDocument.CreateElement(REPORT_NAME)XMLDocument.appendChild(RootElement)..。
2.ドキュメントテンプレートを取得して、ディスクにエクスポートします。
... TemplateID \u003d Const( 'xxx')Template \u003d Edocuments.GetObjectByID(TemplateID)Template.Export(VersionNumber; Path; FALSE)..。
3.エクスポートしたテンプレートをExcelで開き、準備したデータをそれに転送します。
…Excel \u003d CreateObject( "Excel.Application")Book \u003d Excel.WorkBooks.Open(Path)Sheet \u003d Book.WorkSheets(1)//データをExcelにロードXmlMap \u003d Book.XmlMaps(REPORT_NAME)XmlMap.ImportXML(XMLDocument.xml )Book.Save Book.Close Excel.Quit..。
4.必要に応じて、ドキュメントを開いて表示するか、すぐにドキュメントをDIRECTUMシステムのストレージに保存します。
生成されたドキュメント「アカウントステートメント」の例:
データをExcelテンプレートにエクスポートすることに加えて、反対のアクションを実行できます。つまり、テンプレートのマークアップフィールドからデータをインポートします。 それら。 このシナリオでは、Excelテンプレートは、DIRECTUMシステムにインポートできる電子データ入力フォームとして機能します。