2016-05-11 4 views
0

EDIFACTファイルをOUIUBLファイル(技術的にはXMLファイル)に変換します。(基本的にはXMLファイルを作成しています)と私のタグに接頭辞例えば「cac:」のように。例えば。XmlWriterに「無効な」文字を使用させる

writer.WriteStartDocument() 
writer.WriteStartElement("cac:Tax") 
writer.WriteElementString("Amount", "500.00") 
writer.WriteEndElement() 
writer.WriteStartDocument() 

しかし、私はというエラーを取得する:私は、XMLを作成するためのXmlWriterを使用しています

<cac:Tax> 
    <cbc:Amount>500.00</cbc:Amount> 
</cac:Tax> 

、本質的にそのようにそれをやって「:」無効な文字です。とにかくそれを使用するにはどうすればいいですか?私は、次の

Dim settings As XmlWriterSettings = New XmlWriterSettings() 
settings.Indent = True 
settings.CheckCharacters = false 

試してみましたそして、私はまたのstartElementのプレフィックスと名前空間を設定しようとしました:

writer.WriteStartElement("cac", "Tax", Nothing) 

しかし、それらのいずれも動作するように見えた...まあプレフィックスがした設定、私がネームスペースも宣言した場合にのみ、私はそれを望んでいません。

は、私はそれがどんな構文の違い:)

+0

このhttps://msdn.microsoft.com/en-us/library/aa302296.aspx それともhttp://www.w3schools.com/xml/xml_schema.asp 「CACを見てみましょう: "はスキーマです。 – Malcor

+2

@マコール:技術的にはcac:はスキーマではなく、スキーマを継承する可能性のある名前空間接頭辞です。 – JaggenSWE

+1

@JaggenSWEあなたは完全に正しいです。 – Malcor

答えて

2

@Malcorのおかげと@JaggenSWE XMLが、ネグレクトのようにそれをフォーマットしたい私は、名前空間を宣言しなければならなかったことが判明

writer.WriteAttributeString("xmlns","cbc", Nothing,"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") 
writer.WriteAttributeString("xmlns","cac", Nothing,"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2") 

ただけでなくこれはトリックを行う、それはまさにあなたがそれを行うことになっている方法です、私はちょうど最初に気づいていない。

関連する問題