[英]Editing xsd enumeration values in .net
如何使用C Sharp更新XML模式(.xsd)中的枚舉值? 我正在使用xsd進行xml驗證。 xsd具有帶有枚舉的簡單類型。 我想在驗證xml之前以編程方式更新xsd中的這些枚舉值。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:simpleType name="Level">
<xs:restriction base="xs:string">
<xs:enumeration value="Overall"/>
<xs:enumeration value="Component" />
<xs:enumeration value="Element" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StatPot">
<xs:restriction base="xs:string">
<xs:enumeration value="Potential" />
<xs:enumeration value="Status" />
<xs:enumeration value="NA" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Classification">
<xs:restriction base="xs:string">
<xs:enumeration value="NotAssessed" />
<xs:enumeration value="Bad" />
<xs:enumeration value="Poor" />
<xs:enumeration value="Moderate" />
<xs:enumeration value="Good" />
<xs:enumeration value="NotHigh" />
<xs:enumeration value="High" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str255">
<xs:restriction base="xs:string">
<xs:maxLength value="255"></xs:maxLength>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str100">
<xs:restriction base="xs:string">
<xs:maxLength value="100"></xs:maxLength>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Str20">
<xs:restriction base="xs:string">
<xs:maxLength value="20"></xs:maxLength>
</xs:restriction>
</xs:simpleType>
<xs:element name="xml">
<xs:complexType>
<xs:sequence>
<xs:element name="ClassificatonData">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="WBClassification">
<xs:complexType>
<xs:sequence>
<xs:element name="SupprortingInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="Driver" maxOccurs="1" minOccurs="0" type="xs:string"/>
<xs:element name="DataSource" maxOccurs="1" minOccurs="0" type="Str100"/>
<xs:element name="Contact" maxOccurs="1" minOccurs="0" type="Str100"/>
<xs:element name="DateRetrieved" maxOccurs="1" minOccurs="0" type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="WBName" type="xs:string" use="required" />
<xs:attribute name="WBId" type="xs:string" use="required" />
<xs:attribute name="ClassItemName" type="xs:string" use="required" />
<xs:attribute name="ClassItemId" type="xs:string" use="required" />
<xs:attribute name="Level" use="required" type="Level"/>
<xs:attribute name="Classification" type="Classification" use="required" />
<xs:attribute name="StatPot" use="optional" type="StatPot"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Year" type="xs:unsignedShort" use="required" />
<xs:attribute name="Overwrite" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="RootEntityType" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
XML模式只是一個XML文檔,就像其他文檔一樣。 您可以使用標准方法(例如Linq-to-XML API(XDocument))來加載該文件並對其進行修改,然后再對其進行分析以創建架構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.