如何从文档中排除XSD元素

如何从文档中排除XSD元素,xsd,Xsd,我有一个正在编辑的XSD,使用XMLSpy或oXygen等工具,我想为XSD生成用户文档。但是,我想从文档中排除某些元素(基于用户需求)。最好的方法是什么?没有独立于工具的方法从文档中排除元素 面向应用程序的数据有xsd:annotation/xsd:appinfo 面向人的数据有xsd:annotation/xsd:documentation XSD是XML,因此编写XSLT转换肯定是生成文档的一种方法。但是,请注意,XSD的语义非常复杂,因此排除任何给定元素相对于任务的其余部分来说都是微

我有一个正在编辑的XSD,使用XMLSpy或oXygen等工具,我想为XSD生成用户文档。但是,我想从文档中排除某些元素(基于用户需求)。最好的方法是什么?

没有独立于工具的方法从文档中排除元素

  • 面向应用程序的数据有
    xsd:annotation/xsd:appinfo
  • 面向人的数据有
    xsd:annotation/xsd:documentation

XSD是XML,因此编写XSLT转换肯定是生成文档的一种方法。但是,请注意,XSD的语义非常复杂,因此排除任何给定元素相对于任务的其余部分来说都是微不足道的。

从文档中删除元素是一个由三部分组成的过程:

1。向元素添加属性,以指示是否应记录这些元素。

下面是一个代码示例,其中显示了一个包含三个元素的XSD,以及一个新属性,
generateDocumentation
,该属性指示是否应记录该元素

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="documentation.xslt"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xmlns:mc="http://www.mycompany.com" 
           xsi:schemaLocation="http://www.mycompany.com ./doc.xsd" 
           elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="DocumentedElement" mc:generateDocumentation="true"/>
    <xs:element name="UndocumentedElement" mc:generateDocumentation="false"/>
    <xs:element name="DefaultElement"/>
</xs:schema>
此转换生成删除指定元素的XSD:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="documentation.xslt"?>
<xs:schema xmlns:mc="http://www.mycompany.com" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xsi:schemaLocation="http://www.mycompany.com ./doc.xsd" 
           elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="DocumentedElement" nc:generateDocumentation="true"/>
    <xs:element name="DefaultElement"/>
</xs:schema>


3。使用您选择的工具生成用户文档。

您的问题不清楚。没有说明您希望如何记录XSD,而是询问如何不记录某些元素。所有可以回答的问题都是建议您不要将
xsd:annotation/xsd:documentation
添加到任何您不希望记录的元素中。当我说“生成文档”时,我的意思是生成HTML、Word、PDF等格式的模式文档,以自动化的方式使用XML编辑器应用程序的功能。各种工具的文档功能会有所不同,排除某些元素的功能也会有所不同。您当前提出的问题不清楚,或者过于宽泛,或者超出范围,因为它要求提供工具建议,或者上述三者的某种组合。如果你不重做它,它肯定会被关闭。我不是在要求工具推荐。也许有一种工具独立的方法,其他人过去也使用过。(例如:1.应用属性;2.应用转换以删除具有该属性的元素;3.为输出生成文档)。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="documentation.xslt"?>
<xs:schema xmlns:mc="http://www.mycompany.com" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xsi:schemaLocation="http://www.mycompany.com ./doc.xsd" 
           elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="DocumentedElement" nc:generateDocumentation="true"/>
    <xs:element name="DefaultElement"/>
</xs:schema>